Factored trap checks into separate function: checkTraps()

This commit is contained in:
Jeff 2016-11-11 15:49:37 -08:00 • committed by Jeff Parsons
commit b87c77b0a0
4 changed files with 365 additions and 327 deletions

View file

@ -110,132 +110,132 @@ function zc(a){this.La=+a.model||1170;this.Mb=a.addrReset||0;pc.call(this,a,6666
function Cc(a){a.m=65536;a.f=32768;a.i=65535;a.s=32768;a.B=15;a.h=[0,0,0,0,0,0,0,a.Mb];a.Ga=[0,0,0,0,0,0];a.na=[0,0,0,0];a.v=0;a.ab=0;a.lc=[4,2,0,1];a.H=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.X=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.$a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0];a.Yb=[0,0,0,0,0,0,0,0];a.Xb=0;a.u=0;a.C=a.D=0;a.c=a.b=a.wb=0;a.Ja=-1;lb(a)}function lb(a){a.mb=255;a.ea=0;a.Db=0;a.w=0;a.Ca=0;a.Cb=0;a.Fa=0;a.Ba=0;a.bb=0;a.Pb=262143;a.O=null;a.g&&Xb(a)}function Xb(a){a.Ba?(a.R=65536,a.M=a.kc,a.V=a.ld,a.qb=a.de,Cb(a.g,a.Fa&16?22:18)):(a.R=0,a.M=a.jc,a.V=a.Wb,a.qb=a.cc,Cb(a.g,16))}h.Lb=function(){return 0};h.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.ua,this.sa]);a.set(2,Ob(this.g));return a.data()};
h.restore=function(a){var b=a[1];this.ua=b[1];vc(this,b[3]);a:{b=this.g;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.D){for(var f=0,g=Array(b.D),k=0;k<e.length-1;)for(var l=e[k++],n=e[k++];l--;)g[f++]=n;e=g}f=b.g[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function P(a){return a.m&65536?1:0}h.Aa=function(){return this.s&32768?8:0};function Dc(a){var b=a.h[7];a.w&57344||(a.Ca=0,a.Cb=b);a.h[7]=b+2&65535;return a.V(b)}
function Ec(a,b){var c=a.h[7];a.h[7]=c+b&65535;return c}function Q(a,b){a.h[7]=b&65535}function Ub(a,b){return{qd:a,Ma:b,next:null}}function Sb(a,b){if(b!=a.O){var c=a.O;if(!c||c.Ma<=b.Ma)b.next=c,a.O=b;else{do{var d=c.next;if(!d||d.Ma<=b.Ma){b.next=d;c.next=b;break}c=d}while(c)}}a.u|=2}function Yb(a){return a.B=a.B&63728|a.Aa()|(a.i&65535?0:4)|(a.f&32768?2:0)|P(a)}
function Zb(a,b){a.s=b<<12;a.i=~b&4;a.f=b<<14;a.m=b<<16;if((b^a.B)&2048)for(var c=a.Ga.length;0<=--c;){var d=a.h[c];a.h[c]=a.Ga[c];a.Ga[c]=d}a.v=b>>14&3;c=a.B>>14&3;a.v!=c&&(a.na[c]=a.h[6],a.h[6]=a.na[a.v]);a.B=b;a.u|=2}function R(a,b){a.u&128||(a.s=a.i=b,a.f=0)}function Fc(a,b,c){a.u&128||(a.s=a.i=a.m=b,a.f=c||0)}function Gc(a,b,c,d){a.u&128||(a.s=a.i=a.m=b,a.f=(c^b)&(d^b))}function Hc(a,b){a.u&128||(a.s=a.i=a.m=b,a.f=a.s^a.m>>1)}function Ic(a,b,c,d){a.u&128||(a.s=a.i=a.m=b,a.f=(c^d)&(d^b))}
function K(a,b,c,d){if(!a.ta){0>a.Ja?a.Ja=Yb(a):a.v||(b=4,a.ea|=4,a.h[6]=4);a.w&57344||(a.Ca=63222,a.Cb=b);a.v=0;var e=a.V(b|a.R),f=a.V(b+2&65535|a.R);Zb(a,f&-12289|a.Ja>>2&12288);Jc(a,a.Ja);Jc(a,a.h[7]);Q(a,e);a.u&=~c;a.Ja=-1;a.u|=8;if(-3!=d)throw b;}}function Kc(a){var b=Lc(a),c=Lc(a)&-1793;a.B&49152&&(c=c&-225|a.B&63712);Q(a,b);Zb(a,c);a.u&=-17}function Lb(a,b){var c=b>>13&31;31>c&&a.Fa&32&&(b=a.$a[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)"));return b}
function Mc(a,b,c){var d,e,f;if(!(c&a.Ba))return b;d=b>>13;a.Fa&a.lc[a.v]||(d&=7);e=a.H[a.v][d];f=(a.X[a.v][d]<<6)+(b&8191)&a.Pb;var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.H[a.v][d]=e;if(4194170!==f||a.v)a.bb=a.v,a.ab=d;b=!1;g&&(g&57344&&(0<=a.Ja&&(g|=128),a.w&57344||(a.w=a.w|g|a.bb<<5|a.ab<<1),
b=!0),a.w&61440||!(4191360>f||4194239<f)||(a.w|=4096,a.w&512&&(a.u|=64)),b&&K(a,168,0,-7));return f}function Nc(a,b,c){b&1&&a.a--;a=a.g;c&=255;3932160<=b&&(b=Lb(a.a,b));a.g[(b&a.ma)>>>a.c].Gb(b&a.l,c&255,b)}function Lc(a){var b=a.V(a.h[6]|a.R);a.h[6]=a.h[6]+2&65535;return b}function Jc(a,b){var c=a.h[6]-2&65535;a.h[6]=c;a.w&57344||(a.Ca=a.Ca<<8|246);Oc(a,0,c);a.qb(c,b)}function Oc(a,b,c){!a.v&&c<=a.mb&&(b||4<c)&&(1145<=a.La&&c<=a.mb-32?(a.ea|=4,a.h[6]=4,K(a,4,0,-5)):(a.ea|=8,a.u|=32))}
function Pc(a,b,c,d){var e,f,g=d&8?0:a.R;switch(b){case 0:return K(a,4,0,-6),0;case 1:return 6==c&&d&4&&Oc(a,b,a.h[6]),a.a-=3,7==c?a.h[c]:a.h[c]|g;case 2:f=2;e=a.h[c];7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.h[c];7!=c&&(e|=g);e=a.V(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.h[c]+f&65535;7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.h[c]-2&65535;7!=c&&(e|=g);e=a.V(e)|g;a.a-=8;break;case 6:return e=a.V(Ec(a,2)),e=e+a.h[c]&65535|g,a.a-=6,e;case 7:return e=a.V(Ec(a,2)),e=e+a.h[c]&
65535,e=a.V(e|a.R)|g,a.a-=10,e}a.h[c]=a.h[c]+f&65535;!g||a.w&57344||(a.Ca=a.Ca<<8|f<<3&248|c);6==c&&0>f&&Oc(a,b,a.h[6]);return e}h.lb=function(a){if(!this.Ba)return this.g.lb(a);this.ta++;a=this.Wb(Mc(this,a,2));this.ta--;return a};h.Za=function(a,b){this.Ba?(this.ta++,Nc(this,Mc(this,a,5),b),this.ta--):this.g.Za(a,b)};h.nb=function(a,b){this.Ba?(this.ta++,this.cc(Mc(this,a,4),b),this.ta--):this.g.nb(a,b)};h.jc=function(a,b,c){return Pc(this,a,b,c)};
h.kc=function(a,b,c){return Mc(this,Pc(this,a,b,c),c)};h.Wb=function(a){return Mb(this.g,a)};h.ld=function(a){return Mb(this.g,Mc(this,a,2))};h.cc=function(a,b){Nb(this.g,a,b&65535)};h.de=function(a,b){Nb(this.g,Mc(this,a,4),b)};function Qc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=Pc(a,b,d,2),c&65536||61440!==(a.B&61440)&&(d&=65535),a.v=a.B>>12&3,c=a.V(d|c&a.R),a.v=a.B>>14&3):c=6!=d||(a.B>>2&12288)===(a.B&12288)?a.h[d]:a.na[a.B>>12&3];return c}
function Rc(a,b,c,d){a.w&57344||(a.Ca=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=Pc(a,b,e,4),c&65536||(e&=65535),a.v=a.B>>12&3,e=Mc(a,e|c&65536,4),a.v=a.B>>14&3,Nb(a.g,e,d)):6!=e||(a.B>>2&12288)===(a.B&12288)?a.h[e]=d:a.na[a.B>>12&3]=d}function Sc(a,b){b>>=6;var c=a.D=b&7;(b=a.C=(b&56)>>3)?(c=a.M(b,c,3),a=Kb(a.g,c)):a=a.h[c]&255;return a}function Tc(a,b){b>>=6;var c=a.D=b&7;return(b=a.C=(b&56)>>3)?Mb(a.g,a.M(b,c,2)):a.h[c]}function Uc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return Pc(a,b,c,8)}
function Vc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.M(b,c,3),a=Kb(a.g,c)):a=a.h[c]&255;return a}function Wc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?Mb(a.g,a.M(b,c,2)):a.h[c]}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.wb=a.M(b,e,7),Nc(a,e,d.call(a,c,Kb(a.g,e)))):a.h[e]=a.h[e]&65280|d.call(a,c,a.h[e]&255)}function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.M(b,e,6),Nb(a.g,e,d.call(a,c,Mb(a.g,e)))):a.h[e]=d.call(a,c,a.h[e])}
function Xc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?Nc(a,a.M(b,e,5),c):a.h[e]=c?a.h[e]&~d|c<<24>>24&d:a.h[e]&~d;return c}function Yc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?Nb(a.g,a.M(b,d,4),c):a.h[d]=c&65535;return c}function V(a,b,c){c&&(Q(a,a.h[7]+(b<<24>>23)),a.a-=2);a.a-=3}
h.ob=function(a){this.j.complete=!0;var b=a?this.j.Eb?0:1:-1;this.j.Eb=!1;this.ra=this.a=a;do{if(this.u){if(a=this.u&7){a=!1;if(this.u&2){this.u&=-3;var c=160,d=(this.Db&224)>>5,e=this.O&&this.O.Ma>d?this.O:null;e&&(c=e.qd,d=e.Ma);d>(this.B&224)>>5?(this.u&4&&(Ec(this,2),this.u&=-5),K(this,c,0,-3),d=!0):d=!1;if(d){if(e)if(a=e,e=this.O,e==a)this.O=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}a=!0}}else this.u&1&&this.u++;a=a&&0>b}if(a)break;if(this.u&112&&(this.u&64?K(this,168,64,
-1):this.u&32?K(this,4,32,-5):K(this,12,16,-4),0>b))break}this.u=this.u&7|this.B&16;this.decode(Dc(this))}while(0<this.a);return this.j.complete?this.ra-this.a:void 0===this.j.complete?0:-1};Ga(function(){for(var a=E(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new zc(d);C(d,c)}});function Zc(a,b){var c=b+a;Gc(this,c,a,b);return c&65535}function $c(a,b){var c=b+a;Gc(this,c<<8,a<<8,b<<8);return c&255}function ad(a,b){a=b<<1;Hc(this,a);return a&65535}
function bd(a,b){a=b<<1;Hc(this,a<<8);return a&255}function cd(a,b){a=b&32768|b>>1|b<<16;Hc(this,a);return a&65535}function dd(a,b){a=b&128|b>>1|b<<8;Hc(this,a<<8);return a&255}function ed(a,b){a=b&~a;R(this,a);return a}function fd(a,b){a=b&~a;R(this,a<<8);return a}function gd(a,b){a|=b;R(this,a);return a}function hd(a,b){a|=b;R(this,a<<8);return a}function id(a,b){a=~b|65536;Fc(this,a);return a&65535}function jd(a,b){a=~b|256;Fc(this,a<<8);return a&255}
function kd(a,b){a=b-a;this.u&128||(this.s=this.i=a,this.f=b&(b^a));return a&65535}function ld(a,b){a=b-a;var c=a<<8;b<<=8;this.u&128||(this.s=this.i=c,this.f=b&(b^c));return a&255}function md(a,b){a=b+a;this.u&128||(this.s=this.i=a,this.f=a&(b^a));return a&65535}function nd(a,b){a=b+a;var c=a<<8;this.u&128||(this.s=this.i=c,this.f=c&(b<<8^c));return a&255}function od(a,b){a=-b;Fc(this,a,a&b&32768);return a&65535}function pd(a,b){a=-b;Fc(this,a<<8,(a&b&128)<<8);return a&255}
function qd(a,b){a=b<<1|this.m>>16&1;Hc(this,a);return a&65535}function rd(a,b){a=b<<1|this.m>>16&1;Hc(this,a<<8);return a&255}function sd(a,b){a=(this.m&65536|b)>>1|b<<16;Hc(this,a);return a&65535}function td(a,b){a=((this.m&65536)>>8|b)>>1|b<<8;Hc(this,a<<8);return a&255}function ud(a,b){var c=b-a;Ic(this,c,a,b);return c&65535}function vd(a,b){var c=b-a;Ic(this,c<<8,a<<8,b<<8);return c&255}function wd(a,b){this.u&128||(this.s=this.i=b&65280,this.f=this.m=0);return(b<<8|b>>8)&65535}
function xd(a,b){a^=b;R(this,a);return a&65535}function yd(a){T(this,a,Tc(this,a),Zc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function zd(a){var b=Wc(this,a);a=a>>6&7;var c=this.h[a];c&32768&&(c|=4294901760);this.m=this.f=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.m=c<<17-b,c>>=b;else if(b)if(16<b)this.f=c,c=0;else{this.m=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.f=32768)}this.h[a]=c&65535;this.s=this.i=c;this.a-=(this.c?6:7)+b}
function Ad(a){var b=Wc(this,a);a=a>>6&7;var c=this.h[a]<<16|this.h[a|1];this.m=this.f=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.m=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.m=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.f=32768)):d=c;this.h[a]=d>>16&65535;this.h[a|1]=d&65535;this.s=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function Bd(a){V(this,a,!P(this))}function Cd(a){V(this,a,P(this))}
function Dd(a){T(this,a,Tc(this,a),ed);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Ed(a){S(this,a,Sc(this,a),fd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Fd(a){T(this,a,Tc(this,a),gd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Gd(a){S(this,a,Sc(this,a),hd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}
function Hd(a){R(this,Tc(this,a)&Wc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Id(a){R(this,(Sc(this,a)&Vc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Jd(a){V(this,a,this.i&65535?0:4)}function Kd(a){V(this,a,!this.Aa()==!(this.f&32768))}function Ld(a){V(this,a,!!(this.i&65535)&&!this.Aa()==!(this.f&32768))}function Md(a){V(this,a,!P(this)&&!!(this.i&65535))}
function Nd(a){V(this,a,(this.i&65535?0:4)||!this.Aa()!=!(this.f&32768))}function Od(a){V(this,a,P(this)||(this.i&65535?0:4))}function Pd(a){V(this,a,!this.Aa()!=!(this.f&32768))}function Qd(a){V(this,a,this.Aa())}function Rd(a){V(this,a,!!(this.i&65535))}function Sd(a){V(this,a,!this.Aa())}function Td(){K(this,12,0,-1);this.a-=5}function Ud(a){V(this,a,!0)}function Vd(a){V(this,a,!(this.f&32768))}function Wd(a){V(this,a,this.f&32768?2:0)}
function W(a){a&1&&(this.m=0);a&2&&(this.f=0);a&4&&(this.i=1);a&8&&(this.s=0);this.a-=5}function Xd(a){var b=Tc(this,a);a=Wc(this,a);Ic(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Yd(a){var b=Sc(this,a)<<8;a=Vc(this,a)<<8;Ic(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}
function Zd(a){var b=Wc(this,a);if(b){a=a>>6&7;var c=this.h[a]<<16|this.h[a|1];this.m=this.f=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.h[a]=d&65535,this.h[a|1]=c-d*b&65535,this.i=d>>16|d,this.s=d>>16):(this.f=32768,this.i=d>>15|d,this.s=c>>16,-1===b&&65534===this.h[a]&&(this.h[a]=this.h[a|1]=1));this.a-=53}else this.i=this.s=0,this.f=32768,this.m=65536,this.a-=7}function $d(){K(this,24,0,-1);this.a-=25}
function ae(){this.B&49152?(this.ea|=128,K(this,4,0,-2)):(this.A&&this.A.setData(this.h[0],!0),this.F?this.F.b():G(this));this.a-=7}function be(){K(this,16,0,-1);this.a-=25}var ce=[0,7,7,10,7,11,9,13];function de(a){this.I=this.a;Q(this,Uc(this,a));this.a=this.I-ce[this.c]}var ee=[0,14,14,17,14,18,16,20];function fe(a){this.I=this.a;var b=Uc(this,a);a=a>>6&7;Jc(this,this.h[a]);this.h[a]=this.h[7];Q(this,b);this.a=this.I-ee[this.c]}var ge=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function he(a){var b=Tc(this,a);this.I=this.a;R(this,Yc(this,a,b));this.a=this.I-ge[(this.C?8:0)+this.c]+(7!=this.b||this.c?0:2)}function ie(a){var b=Sc(this,a);R(this,Xc(this,a,b,65535)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}var je=[7,13,13,17,14,18,17,21];
function ke(a){var b=Wc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.h[a];c&32768&&(c|=-65536);b=~~(b*c);this.h[a]=b>>16&65535;this.h[a|1]=b&65535;this.u&128||(this.s=b>>16,this.i=this.s|b,this.f=0,this.m=-32768>b||32767<b?65536:0);this.a-=23}function le(){this.a-=5}function me(){this.B&49152||(this.g.reset(),lb(this));this.a-=667}function ne(){Kc(this);this.u|=this.B&16;this.a-=13}
function oe(a){if(a&8)K(this,8,0,-1);else{var b=Lc(this);a&=7;7==a?Q(this,b):(Q(this,this.h[a]),this.h[a]=b);this.a-=9}}function X(a){a&1&&(this.m=65536);a&2&&(this.f=32768);a&4&&(this.i=0);a&8&&(this.s=32768);this.a-=5}function pe(a){var b=(a&448)>>6;if(this.h[b]=this.h[b]-1&65535)Q(this,this.h[7]-((a&63)<<1)),this.a+=1;this.a-=6}function qe(a){T(this,a,Tc(this,a),ud);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}
function re(a){T(this,a,0,wd);this.a-=this.c?9:3+(7==this.b?2:0)}function se(){K(this,28,0,-1);this.a-=5}function te(){this.A&&(this.A.da=this.h[7],this.A.setData(this.h[0],!0));this.u|=4;Ec(this,-2);this.a-=3}function ue(a){T(this,a,Tc(this,a),xd);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){K(this,8,0,-1)}function Ac(a){ve[a>>12].call(this,a)}function we(a){xe[a>>6&3].call(this,a)}function ye(a){ze[a>>6&3].call(this,a)}function Ae(a){Be[a>>6&3].call(this,a)}
function Ce(a){De[a&15].call(this,a)}function Ee(a){Fe[a&15].call(this,a)}function Ge(a){He[a>>6&3].call(this,a)}function Ie(a){Je[a>>6&3].call(this,a)}function Ke(a){Le[a>>6&3].call(this,a)}
var ve=[function(a){Me[a>>8&15].call(this,a)},he,Xd,Hd,Dd,Fd,yd,Y,function(a){Ne[a>>8&15].call(this,a)},ie,Yd,Id,Ed,Gd,qe,Y],Me=[function(a){Pe[a>>4&15].call(this,a)},Ud,Rd,Jd,Kd,Pd,Ld,Nd,fe,fe,we,ye,Ae,Y,Y,Y],xe=[function(a){Fc(this,Yc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,id);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,md);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,kd);this.a-=this.c?9:3+(7==this.b?2:0)}],ze=[function(a){T(this,a,0,
od);this.a-=this.c?11:6},function(a){T(this,a,P(this)?1:0,Zc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,P(this)?1:0,ud);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=Wc(this,a);Fc(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Be=[function(a){T(this,a,0,sd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,qd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,cd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,ad);this.a-=this.c?9:3+(7==this.b?2:0)}],
Pe=[function(a){Qe[a&15].call(this,a)},Y,Y,Y,de,de,de,de,oe,Y,Ce,Ee,re,re,re,re],Qe=[ae,te,ne,Td,be,me,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],De=[le,function(){this.m=0;this.a-=5},function(){this.f=0;this.a-=5},W,function(){this.i=1;this.a-=5},W,W,W,function(){this.s=0;this.a-=5},W,W,W,W,W,W,W],Fe=[le,function(){this.m=65536;this.a-=5},function(){this.f=32768;this.a-=5},X,function(){this.i=0;this.a-=5},X,X,X,function(){this.s=32768;this.a-=5},X,X,X,X,X,X,X],Ne=[Sd,Qd,Md,Od,Vd,Wd,Bd,Cd,$d,se,Ge,Ie,Ke,Y,Y,Y],He=[function(a){Fc(this,
Xc(this,a,0,255));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,jd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,nd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,ld);this.a-=this.c?9:3+(7==this.b?2:0)}],Je=[function(a){S(this,a,0,pd);this.a-=this.c?11:6},function(a){S(this,a,P(this)?1:0,$c);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,P(this)?1:0,vd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=Vc(this,a);Fc(this,a<<8);this.a-=this.c?4:3+(7==
this.b?2:0)}],Le=[function(a){S(this,a,0,td);this.a-=this.c?9+(this.wb&1):3+(7==this.b?2:0)},function(a){S(this,a,0,rd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,dd);this.a-=this.c?9+(this.wb&1):3+(7==this.b?2:0)},function(a){S(this,a,0,bd);this.a-=this.c?9:3+(7==this.b?2:0)}];function Bc(a){Re[a>>12].call(this,a)}
var Re=[function(a){Se[a>>8&15].call(this,a)},he,Xd,Hd,Dd,Fd,yd,function(a){Te[a>>8&15].call(this,a)},function(a){Ue[a>>8&15].call(this,a)},ie,Yd,Id,Ed,Gd,qe,Y],Se=[function(a){Ve[a>>4&15].call(this,a)},Ud,Rd,Jd,Kd,Pd,Ld,Nd,fe,fe,we,ye,Ae,function(a){We[a>>6&3].call(this,a)},Y,Y],We=[function(a){a=this.h[7]+((a&63)<<1)&65535;var b=this.V(a|this.R);Q(this,this.h[5]);this.h[6]=a+2&65535;this.h[5]=b;this.a-=8},function(a){a=Qc(this,a,0);Jc(this,a);R(this,a);this.a-=11},function(a){var b=Lc(this);this.I=
this.a;Rc(this,a,0,b);R(this,b);this.a=this.I-je[this.c]},function(a){R(this,Yc(this,a,this.Aa?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],Ve=[function(a){Xe[a&15].call(this,a)},Y,Y,Y,de,de,de,de,oe,function(a){a&8?(this.B&49152||(this.B=this.B&-2017|(a&7)<<5,this.u|=1),this.a-=5):K(this,8,0,-1)},Ce,Ee,re,re,re,re],Xe=[ae,te,ne,Td,be,me,function(){Kc(this);this.a-=13},function(){K(this,8,0,-1)},Y,Y,Y,Y,Y,Y,Y,Y],Te=[ke,ke,Zd,Zd,zd,zd,Ad,Ad,ue,ue,Y,Y,Y,Y,pe,pe],Ue=[Sd,Qd,Md,Od,Vd,Wd,Bd,Cd,$d,se,
Ge,Ie,Ke,function(a){Ye[a>>6&3].call(this,a)},Y,Y],Ye=[Y,function(a){a=Qc(this,a,65536);Jc(this,a);R(this,a);this.a-=11},function(a){var b=Lc(this);this.I=this.a;Rc(this,a,65536,b);R(this,b);this.a=this.I-je[this.c]},Y];
function Ze(a){x.call(this,"ROM",a,Ze);this.W=this.c=null;this.i=a.addr;this.b=a.size;this.m=!1;this.f=a.alias;this.l=a.file;this.s=q(this.l);if(this.l){a=this.l;var b=la(this.s);"json"!=b&&"hex"!=b&&(a=v()+"/api/v1/dump?file="+this.l+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.G("Unable to load ROM resource (error "+f+": "+a+")"),c.l=null):(Ra(c.oa,a,b),(a=ta(a,b))?(c.c=a.K,c.W=a.W):c.l=null);$e(c)})}}z(Ze);h=Ze.prototype;
h.ia=function(a,b,c,d){this.g=b;this.a=c;this.F=d;$e(this)};h.ka=function(){this.W&&(this.F&&this.F.a(this.id,this.i,this.b,this.W),delete this.W);return!0};h.ja=function(){return!0};
function $e(a){if(!Va(a)){if(a.l){if(!a.c||!a.g)return;a.b||(a.b=a.c.length);if(a.c.length!=a.b)Wa(a,"ROM size ("+m(a.c.length,8,!0)+") does not match specified size ("+m(a.b,8,!0)+")");else{var b;a:{b=a.i;a.status(a.b+"-byte ROM at "+ka(b));if(57344<=b&&b<57344+H){var c={};b=(c[b]=[Ze.prototype.Zc,Ze.prototype.Sd,null,null,null,a.b>>1],c);if(cb(a.g,a,b,256,a.ya)){b=a.m=!0;break a}}else if(Fb(a.g,b,a.b,fc)){for(c=0;c<a.c.length;c++)a.g.Za(b+c,a.c[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.f?
b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Eb(d.g,d.i,d.b);Db(d.g,e,d.b,f)}a.m||delete a.c}}}F(a)}}h.Zc=function(a){return this.c[a-this.i]};h.Sd=function(){};Ga(function(){for(var a=E(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ze(d);C(d,c)}});
function af(a){x.call(this,"RAM",a,af);this.W=this.c=null;this.l=a.addr;this.i=a.size;this.ga=a.load;this.fa=a.exec;this.f=!1;this.b=a.file;this.m=q(this.b);if(this.b){a=this.b;var b=la(this.m);"json"!=b&&"hex"!=b&&(a=v()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.G("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(Ra(c.oa,a,b),(a=ta(a,b))?(c.c=a.K,c.W=a.W,null==c.ga&&(c.ga=a.ga),null==c.fa&&(c.fa=a.fa)):c.b=null);bf(c)})}}z(af);
af.prototype.ia=function(a,b,c,d){this.g=b;this.a=c;this.F=d;bf(this)};af.prototype.ka=function(){this.W&&(this.F&&this.F.a(this.id,this.l,this.i,this.W),delete this.W);return!0};af.prototype.ja=function(){return!0};function bf(a){if(a.g&&(!a.f&&a.i&&Fb(a.g,a.l,a.i,Ib)&&(a.f=!0),!Va(a))){if(!a.f)t("No RAM allocated");else if(a.b){if(!a.c||!a.g)return;cf(a,a.c,a.ga,a.fa,a.l)}F(a)}}
af.prototype.reset=function(){if(this.f){for(var a=this.g,b=this.l,c=this.i,d=b&a.l,b=b>>>a.c;0<c&&b<a.g.length;){var e=a.g[b];if(e.controller&&a.i&&a.i.length==a.v.length){var f=a.i.indexOf(e);0<=f&&(e=a.v[f])}if(e){var f=c,g=0,k,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Xa&&e.o)for(k=d;f--&&k<e.o.length;k++)e.o[k]=g;else for(k=d;f--&&k<e.size;k++)e.Hb(d,g,e.Ka+d)}c-=a.b;b++;d=0}this.c&&cf(this,this.c,this.ga,this.fa,this.l,!0)}};
function cf(a,b,c,d,e,f){var g=!1;if(null==c)for(var k=0;k<b.length-1;){var l=b[k]&255|(b[k+1]&255)<<8;if(l)if(l&255){if(1!=l)break;if(k+6>=b.length)break;for(var k=k+2,n=b[k++]&255|(b[k++]&255)<<8,p=b[k++]&255|(b[k++]&255)<<8,l=l+((n&255)+(n>>8)+(p&255)+(p>>8)),u=k,w=n-=6;0<n&&k<b.length;)l+=b[k++]&255,n--;if(n||k>=b.length)break;l+=b[k++]&255;if(l&255)break;if(w)for(;w--;)a.a.Za(p++,b[u++]&255);else p&1?G(a.a):null==d&&(d=p);g=!0}else k++;else k+=2}if(!g&&(null==c&&(c=e),null!=c)){for(g=0;g<b.length;g++)a.a.Za(c+
g,b[g]);g=!0}g&&null!=d&&(a=a.a,a.Mb=d,Q(a,d),!f&&a.F&&(G(a)||a.F.c()));return g}Ga(function(){for(var a=E(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new af(d);C(d,c)}});function df(a){x.call(this,"Keyboard",a,df);F(this)}z(df);df.prototype.Z=function(){return!1};df.prototype.ia=function(a,b,c,d){this.l=a;this.a=c;this.F=d};Ga(function(){for(var a=E(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new df(d);C(d,c)}});
function Z(a){this.C=a.baudReceive||9600;this.R=a.baudTransmit||9600;this.O=a.upperCase;this.f=this.m=null;this.I=a.tabSize;this.D=a.charBOL;this.s=0;x.call(this,"SerialPort",a,Z);var b=a.binding;if("console"==b)this.m="";else{var c;a=ef;b&&(void 0===c&&(c="Panel"),(c=Ta(c,this.id))&&(b=c.o[b])&&this.Z(null,a,b))}this.v=this.A=null;this.exports={connect:this.Nb,receiveData:this.Bb}}z(Z);var ef="buffer";h=Z.prototype;
h.Z=function(a,b,c){var d=this;switch(b){case ef:return this.o[b]=this.f=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.Bb(b);return!0},c.onkeypress=function(a){a=a||window.event;d.Bb(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
h.ia=function(a,b,c,d){this.l=a;this.g=b;this.a=c;this.F=d;var e=this;this.aa=Ub(48,4);this.J=Rb(this.a,function(){e.b&128||!e.i.length||(e.w=e.i.shift()&255,e.O&&97<=e.w&&122>e.w&&(e.w-=32),e.b|=128,e.b&64&&Sb(e.a,e.aa))});this.M=Ub(52,4);this.$=Rb(this.a,function(){e.c|=128;e.c&64&&Sb(e.a,e.M)});cb(b,this,ff);F(this)};
function Ec(a,b){var c=a.h[7];a.h[7]=c+b&65535;return c}function Q(a,b){a.h[7]=b&65535}function Ub(a,b){return{qd:a,Ma:b,next:null}}function Sb(a,b){if(b!=a.O){var c=a.O;if(!c||c.Ma<=b.Ma)b.next=c,a.O=b;else{do{var d=c.next;if(!d||d.Ma<=b.Ma){b.next=d;c.next=b;break}c=d}while(c)}}a.u|=2}function Fc(a){return a.u&64?(K(a,168,64,-1),!0):a.u&32?(K(a,4,32,-5),!0):a.u&16?(K(a,12,16,-4),!0):!1}function Yb(a){return a.B=a.B&63728|a.Aa()|(a.i&65535?0:4)|(a.f&32768?2:0)|P(a)}
function Zb(a,b){a.s=b<<12;a.i=~b&4;a.f=b<<14;a.m=b<<16;if((b^a.B)&2048)for(var c=a.Ga.length;0<=--c;){var d=a.h[c];a.h[c]=a.Ga[c];a.Ga[c]=d}a.v=b>>14&3;c=a.B>>14&3;a.v!=c&&(a.na[c]=a.h[6],a.h[6]=a.na[a.v]);a.B=b;a.u|=2}function R(a,b){a.u&128||(a.s=a.i=b,a.f=0)}function Gc(a,b,c){a.u&128||(a.s=a.i=a.m=b,a.f=c||0)}function Hc(a,b,c,d){a.u&128||(a.s=a.i=a.m=b,a.f=(c^b)&(d^b))}function Ic(a,b){a.u&128||(a.s=a.i=a.m=b,a.f=a.s^a.m>>1)}function Jc(a,b,c,d){a.u&128||(a.s=a.i=a.m=b,a.f=(c^d)&(d^b))}
function K(a,b,c,d){if(!a.ta){0>a.Ja?a.Ja=Yb(a):a.v||(b=4,a.ea|=4,a.h[6]=4);a.w&57344||(a.Ca=63222,a.Cb=b);a.v=0;var e=a.V(b|a.R),f=a.V(b+2&65535|a.R);Zb(a,f&-12289|a.Ja>>2&12288);Kc(a,a.Ja);Kc(a,a.h[7]);Q(a,e);a.u&=~c;a.Ja=-1;a.u|=8;if(-3!=d)throw b;}}function Lc(a){var b=Mc(a),c=Mc(a)&-1793;a.B&49152&&(c=c&-225|a.B&63712);Q(a,b);Zb(a,c);a.u&=-17}function Lb(a,b){var c=b>>13&31;31>c&&a.Fa&32&&(b=a.$a[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)"));return b}
function Nc(a,b,c){var d,e,f;if(!(c&a.Ba))return b;d=b>>13;a.Fa&a.lc[a.v]||(d&=7);e=a.H[a.v][d];f=(a.X[a.v][d]<<6)+(b&8191)&a.Pb;var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.H[a.v][d]=e;if(4194170!==f||a.v)a.bb=a.v,a.ab=d;b=!1;g&&(g&57344&&(0<=a.Ja&&(g|=128),a.w&57344||(a.w=a.w|g|a.bb<<5|a.ab<<1),
b=!0),a.w&61440||!(4191360>f||4194239<f)||(a.w|=4096,a.w&512&&(a.u|=64)),b&&K(a,168,0,-7));return f}function Oc(a,b,c){b&1&&a.a--;a=a.g;c&=255;3932160<=b&&(b=Lb(a.a,b));a.g[(b&a.ma)>>>a.c].Gb(b&a.l,c&255,b)}function Mc(a){var b=a.V(a.h[6]|a.R);a.h[6]=a.h[6]+2&65535;return b}function Kc(a,b){var c=a.h[6]-2&65535;a.h[6]=c;a.w&57344||(a.Ca=a.Ca<<8|246);Pc(a,0,c);a.qb(c,b)}function Pc(a,b,c){!a.v&&c<=a.mb&&(b||4<c)&&(1145<=a.La&&c<=a.mb-32?(a.ea|=4,a.h[6]=4,K(a,4,0,-5)):(a.ea|=8,a.u|=32))}
function Qc(a,b,c,d){var e,f,g=d&8?0:a.R;switch(b){case 0:return K(a,4,0,-6),0;case 1:return 6==c&&d&4&&Pc(a,b,a.h[6]),a.a-=3,7==c?a.h[c]:a.h[c]|g;case 2:f=2;e=a.h[c];7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.h[c];7!=c&&(e|=g);e=a.V(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.h[c]+f&65535;7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.h[c]-2&65535;7!=c&&(e|=g);e=a.V(e)|g;a.a-=8;break;case 6:return e=a.V(Ec(a,2)),e=e+a.h[c]&65535|g,a.a-=6,e;case 7:return e=a.V(Ec(a,2)),e=e+a.h[c]&
65535,e=a.V(e|a.R)|g,a.a-=10,e}a.h[c]=a.h[c]+f&65535;!g||a.w&57344||(a.Ca=a.Ca<<8|f<<3&248|c);6==c&&0>f&&Pc(a,b,a.h[6]);return e}h.lb=function(a){if(!this.Ba)return this.g.lb(a);this.ta++;a=this.Wb(Nc(this,a,2));this.ta--;return a};h.Za=function(a,b){this.Ba?(this.ta++,Oc(this,Nc(this,a,5),b),this.ta--):this.g.Za(a,b)};h.nb=function(a,b){this.Ba?(this.ta++,this.cc(Nc(this,a,4),b),this.ta--):this.g.nb(a,b)};h.jc=function(a,b,c){return Qc(this,a,b,c)};
h.kc=function(a,b,c){return Nc(this,Qc(this,a,b,c),c)};h.Wb=function(a){return Mb(this.g,a)};h.ld=function(a){return Mb(this.g,Nc(this,a,2))};h.cc=function(a,b){Nb(this.g,a,b&65535)};h.de=function(a,b){Nb(this.g,Nc(this,a,4),b)};function Rc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=Qc(a,b,d,2),c&65536||61440!==(a.B&61440)&&(d&=65535),a.v=a.B>>12&3,c=a.V(d|c&a.R),a.v=a.B>>14&3):c=6!=d||(a.B>>2&12288)===(a.B&12288)?a.h[d]:a.na[a.B>>12&3];return c}
function Sc(a,b,c,d){a.w&57344||(a.Ca=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=Qc(a,b,e,4),c&65536||(e&=65535),a.v=a.B>>12&3,e=Nc(a,e|c&65536,4),a.v=a.B>>14&3,Nb(a.g,e,d)):6!=e||(a.B>>2&12288)===(a.B&12288)?a.h[e]=d:a.na[a.B>>12&3]=d}function Tc(a,b){b>>=6;var c=a.D=b&7;(b=a.C=(b&56)>>3)?(c=a.M(b,c,3),a=Kb(a.g,c)):a=a.h[c]&255;return a}function Uc(a,b){b>>=6;var c=a.D=b&7;return(b=a.C=(b&56)>>3)?Mb(a.g,a.M(b,c,2)):a.h[c]}function Vc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return Qc(a,b,c,8)}
function Wc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.M(b,c,3),a=Kb(a.g,c)):a=a.h[c]&255;return a}function Xc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?Mb(a.g,a.M(b,c,2)):a.h[c]}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.wb=a.M(b,e,7),Oc(a,e,d.call(a,c,Kb(a.g,e)))):a.h[e]=a.h[e]&65280|d.call(a,c,a.h[e]&255)}function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.M(b,e,6),Nb(a.g,e,d.call(a,c,Mb(a.g,e)))):a.h[e]=d.call(a,c,a.h[e])}
function Yc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?Oc(a,a.M(b,e,5),c):a.h[e]=c?a.h[e]&~d|c<<24>>24&d:a.h[e]&~d;return c}function Zc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?Nb(a.g,a.M(b,d,4),c):a.h[d]=c&65535;return c}function V(a,b,c){c&&(Q(a,a.h[7]+(b<<24>>23)),a.a-=2);a.a-=3}
h.ob=function(a){this.j.complete=!0;var b=a?this.j.Eb?0:1:-1;this.j.Eb=!1;this.ra=this.a=a;do{if(this.u){if(a=this.u&7){a=!1;if(this.u&2){this.u&=-3;var c=160,d=(this.Db&224)>>5,e=this.O&&this.O.Ma>d?this.O:null;e&&(c=e.qd,d=e.Ma);d>(this.B&224)>>5?(this.u&4&&(Ec(this,2),this.u&=-5),K(this,c,0,-3),d=!0):d=!1;if(d){if(e)if(a=e,e=this.O,e==a)this.O=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}a=!0}}else this.u&1&&this.u++;a=a&&0>b}if(a)break;if(this.u&112&&Fc(this)&&0>b)break}this.u=
this.u&7|this.B&16;this.decode(Dc(this))}while(0<this.a);return this.j.complete?this.ra-this.a:void 0===this.j.complete?0:-1};Ga(function(){for(var a=E(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new zc(d);C(d,c)}});function $c(a,b){var c=b+a;Hc(this,c,a,b);return c&65535}function ad(a,b){var c=b+a;Hc(this,c<<8,a<<8,b<<8);return c&255}function bd(a,b){a=b<<1;Ic(this,a);return a&65535}function cd(a,b){a=b<<1;Ic(this,a<<8);return a&255}
function dd(a,b){a=b&32768|b>>1|b<<16;Ic(this,a);return a&65535}function ed(a,b){a=b&128|b>>1|b<<8;Ic(this,a<<8);return a&255}function fd(a,b){a=b&~a;R(this,a);return a}function gd(a,b){a=b&~a;R(this,a<<8);return a}function hd(a,b){a|=b;R(this,a);return a}function id(a,b){a|=b;R(this,a<<8);return a}function jd(a,b){a=~b|65536;Gc(this,a);return a&65535}function kd(a,b){a=~b|256;Gc(this,a<<8);return a&255}function ld(a,b){a=b-a;this.u&128||(this.s=this.i=a,this.f=b&(b^a));return a&65535}
function md(a,b){a=b-a;var c=a<<8;b<<=8;this.u&128||(this.s=this.i=c,this.f=b&(b^c));return a&255}function nd(a,b){a=b+a;this.u&128||(this.s=this.i=a,this.f=a&(b^a));return a&65535}function od(a,b){a=b+a;var c=a<<8;this.u&128||(this.s=this.i=c,this.f=c&(b<<8^c));return a&255}function pd(a,b){a=-b;Gc(this,a,a&b&32768);return a&65535}function qd(a,b){a=-b;Gc(this,a<<8,(a&b&128)<<8);return a&255}function rd(a,b){a=b<<1|this.m>>16&1;Ic(this,a);return a&65535}
function sd(a,b){a=b<<1|this.m>>16&1;Ic(this,a<<8);return a&255}function td(a,b){a=(this.m&65536|b)>>1|b<<16;Ic(this,a);return a&65535}function ud(a,b){a=((this.m&65536)>>8|b)>>1|b<<8;Ic(this,a<<8);return a&255}function vd(a,b){var c=b-a;Jc(this,c,a,b);return c&65535}function wd(a,b){var c=b-a;Jc(this,c<<8,a<<8,b<<8);return c&255}function xd(a,b){this.u&128||(this.s=this.i=b&65280,this.f=this.m=0);return(b<<8|b>>8)&65535}function yd(a,b){a^=b;R(this,a);return a&65535}
function zd(a){T(this,a,Uc(this,a),$c);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Ad(a){var b=Xc(this,a);a=a>>6&7;var c=this.h[a];c&32768&&(c|=4294901760);this.m=this.f=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.m=c<<17-b,c>>=b;else if(b)if(16<b)this.f=c,c=0;else{this.m=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.f=32768)}this.h[a]=c&65535;this.s=this.i=c;this.a-=(this.c?6:7)+b}
function Bd(a){var b=Xc(this,a);a=a>>6&7;var c=this.h[a]<<16|this.h[a|1];this.m=this.f=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.m=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.m=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.f=32768)):d=c;this.h[a]=d>>16&65535;this.h[a|1]=d&65535;this.s=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function Cd(a){V(this,a,!P(this))}function Dd(a){V(this,a,P(this))}
function Ed(a){T(this,a,Uc(this,a),fd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Fd(a){S(this,a,Tc(this,a),gd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Gd(a){T(this,a,Uc(this,a),hd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}function Hd(a){S(this,a,Tc(this,a),id);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}
function Id(a){R(this,Uc(this,a)&Xc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Jd(a){R(this,(Tc(this,a)&Wc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Kd(a){V(this,a,this.i&65535?0:4)}function Ld(a){V(this,a,!this.Aa()==!(this.f&32768))}function Md(a){V(this,a,!!(this.i&65535)&&!this.Aa()==!(this.f&32768))}function Nd(a){V(this,a,!P(this)&&!!(this.i&65535))}
function Od(a){V(this,a,(this.i&65535?0:4)||!this.Aa()!=!(this.f&32768))}function Pd(a){V(this,a,P(this)||(this.i&65535?0:4))}function Qd(a){V(this,a,!this.Aa()!=!(this.f&32768))}function Rd(a){V(this,a,this.Aa())}function Sd(a){V(this,a,!!(this.i&65535))}function Td(a){V(this,a,!this.Aa())}function Ud(){K(this,12,0,-1);this.a-=5}function Vd(a){V(this,a,!0)}function Wd(a){V(this,a,!(this.f&32768))}function Xd(a){V(this,a,this.f&32768?2:0)}
function W(a){a&1&&(this.m=0);a&2&&(this.f=0);a&4&&(this.i=1);a&8&&(this.s=0);this.a-=5}function Yd(a){var b=Uc(this,a);a=Xc(this,a);Jc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}function Zd(a){var b=Tc(this,a)<<8;a=Wc(this,a)<<8;Jc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.C?4:3)+(7==this.b?2:0)}
function $d(a){var b=Xc(this,a);if(b){a=a>>6&7;var c=this.h[a]<<16|this.h[a|1];this.m=this.f=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.h[a]=d&65535,this.h[a|1]=c-d*b&65535,this.i=d>>16|d,this.s=d>>16):(this.f=32768,this.i=d>>15|d,this.s=c>>16,-1===b&&65534===this.h[a]&&(this.h[a]=this.h[a|1]=1));this.a-=53}else this.i=this.s=0,this.f=32768,this.m=65536,this.a-=7}function ae(){K(this,24,0,-1);this.a-=25}
function be(){this.B&49152?(this.ea|=128,K(this,4,0,-2)):(this.A&&this.A.setData(this.h[0],!0),this.F?this.F.b():G(this));this.a-=7}function ce(){K(this,16,0,-1);this.a-=25}var de=[0,7,7,10,7,11,9,13];function ee(a){this.I=this.a;Q(this,Vc(this,a));this.a=this.I-de[this.c]}var fe=[0,14,14,17,14,18,16,20];function ge(a){this.I=this.a;var b=Vc(this,a);a=a>>6&7;Kc(this,this.h[a]);this.h[a]=this.h[7];Q(this,b);this.a=this.I-fe[this.c]}var he=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function ie(a){var b=Uc(this,a);this.I=this.a;R(this,Zc(this,a,b));this.a=this.I-he[(this.C?8:0)+this.c]+(7!=this.b||this.c?0:2)}function je(a){var b=Tc(this,a);R(this,Yc(this,a,b,65535)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}var ke=[7,13,13,17,14,18,17,21];
function le(a){var b=Xc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.h[a];c&32768&&(c|=-65536);b=~~(b*c);this.h[a]=b>>16&65535;this.h[a|1]=b&65535;this.u&128||(this.s=b>>16,this.i=this.s|b,this.f=0,this.m=-32768>b||32767<b?65536:0);this.a-=23}function me(){this.a-=5}function ne(){this.B&49152||(this.g.reset(),lb(this));this.a-=667}function oe(){Lc(this);this.u|=this.B&16;this.a-=13}
function pe(a){if(a&8)K(this,8,0,-1);else{var b=Mc(this);a&=7;7==a?Q(this,b):(Q(this,this.h[a]),this.h[a]=b);this.a-=9}}function X(a){a&1&&(this.m=65536);a&2&&(this.f=32768);a&4&&(this.i=0);a&8&&(this.s=32768);this.a-=5}function qe(a){var b=(a&448)>>6;if(this.h[b]=this.h[b]-1&65535)Q(this,this.h[7]-((a&63)<<1)),this.a+=1;this.a-=6}function re(a){T(this,a,Uc(this,a),vd);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.C?5:3)+(7==this.b?2:0)}
function se(a){T(this,a,0,xd);this.a-=this.c?9:3+(7==this.b?2:0)}function te(){K(this,28,0,-1);this.a-=5}function ue(){this.A&&(this.A.da=this.h[7],this.A.setData(this.h[0],!0));this.u|=4;Ec(this,-2);this.a-=3}function ve(a){T(this,a,Uc(this,a),yd);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){K(this,8,0,-1)}function Ac(a){we[a>>12].call(this,a)}function xe(a){ye[a>>6&3].call(this,a)}function ze(a){Ae[a>>6&3].call(this,a)}function Be(a){Ce[a>>6&3].call(this,a)}
function De(a){Ee[a&15].call(this,a)}function Fe(a){Ge[a&15].call(this,a)}function He(a){Ie[a>>6&3].call(this,a)}function Je(a){Ke[a>>6&3].call(this,a)}function Le(a){Me[a>>6&3].call(this,a)}
var we=[function(a){Ne[a>>8&15].call(this,a)},ie,Yd,Id,Ed,Gd,zd,Y,function(a){Pe[a>>8&15].call(this,a)},je,Zd,Jd,Fd,Hd,re,Y],Ne=[function(a){Qe[a>>4&15].call(this,a)},Vd,Sd,Kd,Ld,Qd,Md,Od,ge,ge,xe,ze,Be,Y,Y,Y],ye=[function(a){Gc(this,Zc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,jd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,nd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,ld);this.a-=this.c?9:3+(7==this.b?2:0)}],Ae=[function(a){T(this,a,0,
pd);this.a-=this.c?11:6},function(a){T(this,a,P(this)?1:0,$c);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,P(this)?1:0,vd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=Xc(this,a);Gc(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Ce=[function(a){T(this,a,0,td);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,rd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,dd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,bd);this.a-=this.c?9:3+(7==this.b?2:0)}],
Qe=[function(a){Re[a&15].call(this,a)},Y,Y,Y,ee,ee,ee,ee,pe,Y,De,Fe,se,se,se,se],Re=[be,ue,oe,Ud,ce,ne,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],Ee=[me,function(){this.m=0;this.a-=5},function(){this.f=0;this.a-=5},W,function(){this.i=1;this.a-=5},W,W,W,function(){this.s=0;this.a-=5},W,W,W,W,W,W,W],Ge=[me,function(){this.m=65536;this.a-=5},function(){this.f=32768;this.a-=5},X,function(){this.i=0;this.a-=5},X,X,X,function(){this.s=32768;this.a-=5},X,X,X,X,X,X,X],Pe=[Td,Rd,Nd,Pd,Wd,Xd,Cd,Dd,ae,te,He,Je,Le,Y,Y,Y],Ie=[function(a){Gc(this,
Yc(this,a,0,255));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,kd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,od);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,md);this.a-=this.c?9:3+(7==this.b?2:0)}],Ke=[function(a){S(this,a,0,qd);this.a-=this.c?11:6},function(a){S(this,a,P(this)?1:0,ad);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,P(this)?1:0,wd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=Wc(this,a);Gc(this,a<<8);this.a-=this.c?4:3+(7==
this.b?2:0)}],Me=[function(a){S(this,a,0,ud);this.a-=this.c?9+(this.wb&1):3+(7==this.b?2:0)},function(a){S(this,a,0,sd);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,ed);this.a-=this.c?9+(this.wb&1):3+(7==this.b?2:0)},function(a){S(this,a,0,cd);this.a-=this.c?9:3+(7==this.b?2:0)}];function Bc(a){Se[a>>12].call(this,a)}
var Se=[function(a){Te[a>>8&15].call(this,a)},ie,Yd,Id,Ed,Gd,zd,function(a){Ue[a>>8&15].call(this,a)},function(a){Ve[a>>8&15].call(this,a)},je,Zd,Jd,Fd,Hd,re,Y],Te=[function(a){We[a>>4&15].call(this,a)},Vd,Sd,Kd,Ld,Qd,Md,Od,ge,ge,xe,ze,Be,function(a){Xe[a>>6&3].call(this,a)},Y,Y],Xe=[function(a){a=this.h[7]+((a&63)<<1)&65535;var b=this.V(a|this.R);Q(this,this.h[5]);this.h[6]=a+2&65535;this.h[5]=b;this.a-=8},function(a){a=Rc(this,a,0);Kc(this,a);R(this,a);this.a-=11},function(a){var b=Mc(this);this.I=
this.a;Sc(this,a,0,b);R(this,b);this.a=this.I-ke[this.c]},function(a){R(this,Zc(this,a,this.Aa?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],We=[function(a){Ye[a&15].call(this,a)},Y,Y,Y,ee,ee,ee,ee,pe,function(a){a&8?(this.B&49152||(this.B=this.B&-2017|(a&7)<<5,this.u|=1),this.a-=5):K(this,8,0,-1)},De,Fe,se,se,se,se],Ye=[be,ue,oe,Ud,ce,ne,function(){Lc(this);this.a-=13},function(){K(this,8,0,-1)},Y,Y,Y,Y,Y,Y,Y,Y],Ue=[le,le,$d,$d,Ad,Ad,Bd,Bd,ve,ve,Y,Y,Y,Y,qe,qe],Ve=[Td,Rd,Nd,Pd,Wd,Xd,Cd,Dd,ae,te,
He,Je,Le,function(a){Ze[a>>6&3].call(this,a)},Y,Y],Ze=[Y,function(a){a=Rc(this,a,65536);Kc(this,a);R(this,a);this.a-=11},function(a){var b=Mc(this);this.I=this.a;Sc(this,a,65536,b);R(this,b);this.a=this.I-ke[this.c]},Y];
function $e(a){x.call(this,"ROM",a,$e);this.W=this.c=null;this.i=a.addr;this.b=a.size;this.m=!1;this.f=a.alias;this.l=a.file;this.s=q(this.l);if(this.l){a=this.l;var b=la(this.s);"json"!=b&&"hex"!=b&&(a=v()+"/api/v1/dump?file="+this.l+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.G("Unable to load ROM resource (error "+f+": "+a+")"),c.l=null):(Ra(c.oa,a,b),(a=ta(a,b))?(c.c=a.K,c.W=a.W):c.l=null);af(c)})}}z($e);h=$e.prototype;
h.ia=function(a,b,c,d){this.g=b;this.a=c;this.F=d;af(this)};h.ka=function(){this.W&&(this.F&&this.F.a(this.id,this.i,this.b,this.W),delete this.W);return!0};h.ja=function(){return!0};
function af(a){if(!Va(a)){if(a.l){if(!a.c||!a.g)return;a.b||(a.b=a.c.length);if(a.c.length!=a.b)Wa(a,"ROM size ("+m(a.c.length,8,!0)+") does not match specified size ("+m(a.b,8,!0)+")");else{var b;a:{b=a.i;a.status(a.b+"-byte ROM at "+ka(b));if(57344<=b&&b<57344+H){var c={};b=(c[b]=[$e.prototype.Zc,$e.prototype.Sd,null,null,null,a.b>>1],c);if(cb(a.g,a,b,256,a.ya)){b=a.m=!0;break a}}else if(Fb(a.g,b,a.b,fc)){for(c=0;c<a.c.length;c++)a.g.Za(b+c,a.c[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.f?
b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Eb(d.g,d.i,d.b);Db(d.g,e,d.b,f)}a.m||delete a.c}}}F(a)}}h.Zc=function(a){return this.c[a-this.i]};h.Sd=function(){};Ga(function(){for(var a=E(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new $e(d);C(d,c)}});
function bf(a){x.call(this,"RAM",a,bf);this.W=this.c=null;this.l=a.addr;this.i=a.size;this.ga=a.load;this.fa=a.exec;this.f=!1;this.b=a.file;this.m=q(this.b);if(this.b){a=this.b;var b=la(this.m);"json"!=b&&"hex"!=b&&(a=v()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.G("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(Ra(c.oa,a,b),(a=ta(a,b))?(c.c=a.K,c.W=a.W,null==c.ga&&(c.ga=a.ga),null==c.fa&&(c.fa=a.fa)):c.b=null);cf(c)})}}z(bf);
bf.prototype.ia=function(a,b,c,d){this.g=b;this.a=c;this.F=d;cf(this)};bf.prototype.ka=function(){this.W&&(this.F&&this.F.a(this.id,this.l,this.i,this.W),delete this.W);return!0};bf.prototype.ja=function(){return!0};function cf(a){if(a.g&&(!a.f&&a.i&&Fb(a.g,a.l,a.i,Ib)&&(a.f=!0),!Va(a))){if(!a.f)t("No RAM allocated");else if(a.b){if(!a.c||!a.g)return;df(a,a.c,a.ga,a.fa,a.l)}F(a)}}
bf.prototype.reset=function(){if(this.f){for(var a=this.g,b=this.l,c=this.i,d=b&a.l,b=b>>>a.c;0<c&&b<a.g.length;){var e=a.g[b];if(e.controller&&a.i&&a.i.length==a.v.length){var f=a.i.indexOf(e);0<=f&&(e=a.v[f])}if(e){var f=c,g=0,k,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Xa&&e.o)for(k=d;f--&&k<e.o.length;k++)e.o[k]=g;else for(k=d;f--&&k<e.size;k++)e.Hb(d,g,e.Ka+d)}c-=a.b;b++;d=0}this.c&&df(this,this.c,this.ga,this.fa,this.l,!0)}};
function df(a,b,c,d,e,f){var g=!1;if(null==c)for(var k=0;k<b.length-1;){var l=b[k]&255|(b[k+1]&255)<<8;if(l)if(l&255){if(1!=l)break;if(k+6>=b.length)break;for(var k=k+2,n=b[k++]&255|(b[k++]&255)<<8,p=b[k++]&255|(b[k++]&255)<<8,l=l+((n&255)+(n>>8)+(p&255)+(p>>8)),u=k,w=n-=6;0<n&&k<b.length;)l+=b[k++]&255,n--;if(n||k>=b.length)break;l+=b[k++]&255;if(l&255)break;if(w)for(;w--;)a.a.Za(p++,b[u++]&255);else p&1?G(a.a):null==d&&(d=p);g=!0}else k++;else k+=2}if(!g&&(null==c&&(c=e),null!=c)){for(g=0;g<b.length;g++)a.a.Za(c+
g,b[g]);g=!0}g&&null!=d&&(a=a.a,a.Mb=d,Q(a,d),!f&&a.F&&(G(a)||a.F.c()));return g}Ga(function(){for(var a=E(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new bf(d);C(d,c)}});function ef(a){x.call(this,"Keyboard",a,ef);F(this)}z(ef);ef.prototype.Z=function(){return!1};ef.prototype.ia=function(a,b,c,d){this.l=a;this.a=c;this.F=d};Ga(function(){for(var a=E(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new ef(d);C(d,c)}});
function Z(a){this.C=a.baudReceive||9600;this.R=a.baudTransmit||9600;this.O=a.upperCase;this.f=this.m=null;this.I=a.tabSize;this.D=a.charBOL;this.s=0;x.call(this,"SerialPort",a,Z);var b=a.binding;if("console"==b)this.m="";else{var c;a=ff;b&&(void 0===c&&(c="Panel"),(c=Ta(c,this.id))&&(b=c.o[b])&&this.Z(null,a,b))}this.v=this.A=null;this.exports={connect:this.Nb,receiveData:this.Bb}}z(Z);var ff="buffer";h=Z.prototype;
h.Z=function(a,b,c){var d=this;switch(b){case ff:return this.o[b]=this.f=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.Bb(b);return!0},c.onkeypress=function(a){a=a||window.event;d.Bb(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
h.ia=function(a,b,c,d){this.l=a;this.g=b;this.a=c;this.F=d;var e=this;this.aa=Ub(48,4);this.J=Rb(this.a,function(){e.b&128||!e.i.length||(e.w=e.i.shift()&255,e.O&&97<=e.w&&122>e.w&&(e.w-=32),e.b|=128,e.b&64&&Sb(e.a,e.aa))});this.M=Ub(52,4);this.$=Rb(this.a,function(){e.c|=128;e.c&64&&Sb(e.a,e.M)});cb(b,this,gf);F(this)};
h.Nb=function(){if(!this.v){var a=rc(this.l,"connection");if(a){var b=a.split("->");if(2==b.length){var c=pa(b[0]);if(c!=this.ya)return;b=pa(b[1]);if(this.v=Sa(b)){var d=this.v.exports;if(d){var e=d.connect;e&&e.call(this.v);if(this.A=d.receiveData){this.status(this.oa+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.ka=function(a,b){if(!b)if(this.Nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
h.ja=function(a){return a?this.save():!0};h.reset=function(){gf(this)};h.save=function(){var a=new O(this);a.set(0,[]);return a.data()};h.restore=function(){return gf(this)};function gf(a){a.w=0;a.b=0;a.c=128;a.i=[];return!0}h.Bb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.i.push(a.charCodeAt(b));else this.i=this.i.concat(a);Tb(this.a,this.J,1E3/Math.round(this.C/10));return!0};h.Tc=function(){return this.b&65534};
h.ja=function(a){return a?this.save():!0};h.reset=function(){hf(this)};h.save=function(){var a=new O(this);a.set(0,[]);return a.data()};h.restore=function(){return hf(this)};function hf(a){a.w=0;a.b=0;a.c=128;a.i=[];return!0}h.Bb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.i.push(a.charCodeAt(b));else this.i=this.i.concat(a);Tb(this.a,this.J,1E3/Math.round(this.C/10));return!0};h.Tc=function(){return this.b&65534};
h.Md=function(a){this.b=this.b&-112|a&111};h.Sc=function(){this.b&=-129;0<this.i.length&&Tb(this.a,this.J,1E3/Math.round(this.C/10));return this.w};h.Ld=function(){};h.nd=function(){return this.c};h.fe=function(a){this.c&128&&a&64&&Sb(this.a,this.M);this.c=this.c&-70|a&69};h.md=function(){return 0};
h.ee=function(a){if(a&=255){this.A&&this.A.call(this.v,a);if(this.f)if(13==a)this.s=0;else if(8==a)this.f.value=this.f.value.slice(0,-1),0<this.s&&this.s--;else{var b;b=(b=qa[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.I||8,c=a-this.s%a,this.I&&(b=" ".slice(0,c)));this.D&&!this.s&&c&&(b=String.fromCharCode(this.D)+b);this.f.value+=b;this.f.scrollTop=this.f.scrollHeight;this.s+=c}else if(null!=this.m){if(10==a||1024<=this.m.length)this.T(this.m),
this.m="";10!=a&&(this.m+=String.fromCharCode(a))}this.c&=-129;Tb(this.a,this.$,1E3/Math.round(this.R/10))}};var hf={},ff=(hf[65392]=[null,null,Z.prototype.Tc,Z.prototype.Md,"RCSR"],hf[65394]=[null,null,Z.prototype.Sc,Z.prototype.Ld,"RBUF"],hf[65396]=[null,null,Z.prototype.nd,Z.prototype.fe,"XCSR"],hf[65398]=[null,null,Z.prototype.md,Z.prototype.ee,"XBUF"],hf);Ga(function(){for(var a=E(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Z(d);C(d,c)}});
function $b(a){x.call(this,"PC11",a,$b);this.c=a.autoMount||null;this.m=0;this.O=a.baudReceive||3600;this.w=this.A=this.b=0;this.v=[];this.s=jf;this.f=kf;this.C=this.i="";this.K=this.ga=this.fa=null;this.I=-1;this.D=!Aa("Mobi")&&window&&"FileReader"in window}z($b);var jf="",kf=0;h=$b.prototype;
h.Z=function(a,b,c){var d=this,e=kf;switch(b){case "listTapes":return this.o[b]=c,c.onchange=function(){var a=d.o.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){t("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.o[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.o[b]=c,c.onclick=function(){var a=
d.o.listTapes;a&&lf(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.D){c.parentNode.removeChild(c);break}this.o[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;lf(d,q(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.o[b]=c,!0}return!1};
h.ia=function(a,b,c,d){this.l=a;this.g=b;this.a=c;this.F=d;this.J=mf(a);var e=this;if((this.c=rc(this.l,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){t("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.M=Ub(56,4);this.R=Rb(this.a,function(){1==(e.b&32769)&&!(e.b&128)&&e.w<e.v.length&&(e.A=e.v[e.w++]&255,nf(e,e.w/e.v.length*100),e.b|=128,e.b&=-2049,e.b&64&&Sb(e.a,e.M))});cb(b,this,of);pf(this,"None",jf,!0);this.D&&pf(this,"Local Tape","?");
pf(this,"Remote Tape","??");qf(this)||F(this)};h.ka=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.A=0};function qf(a){a.m=0;if(a.c){var b=a.c.path||"",c;if(!(c=a.c.name))a:{if((c=a.o.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=q(b,!0)}b&&c?rf(a,c,b,1,!0):sf(a)}return!!a.m}
function lf(a,b,c,d,e){if(c)if("?"==c)a.G('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=q(c);a.status("Attempting to load "+c+' as "'+b+'"');a.s="??"}else a.s=c;rf(a,b,c,d,!1,e)}else tf(a,!1)}function rf(a,b,c,d,e,f){var g=-1;if(a.i.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,tf(a,!0),a.j.Ea?a.G("PC11 busy"):(e&&a.m++,uf(a,b,c,d,f)?g++:a.j.Ea=!0);g&&vf(a,a.C,a.i,a.f,a.K,a.ga,a.fa)}
function uf(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),vf(a,b,c,d,e),a.s="?");sf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):v()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!r(f,null,!0,function(e,f,g){var k=0>g&&a.l&&!a.l.j.N;g?a.G('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(Ra(a.oa,e,f),(e=ta(e,f))&&vf(a,b,c,d,e.K,e.ga,e.fa));
a.j.Ea=!1;a.m&&(a.m--,a.m||F(a));sf(a)})}function pf(a,b,c,d){if((a=a.o.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function sf(a){var b=a.o.listTapes;if(b&&b.options){a=a.s||a.i;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
function nf(a,b){b|=0;if(b!==a.I){var c=a.o.readProgress;c&&(c=(c=E(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.I=b}}function vf(a,b,c,d,e,f,g){a.C=b;a.i=c;a.f=d;a.K=e;a.ga=f;a.fa=g;2==d?a.J&&cf(a.J,e,f,g)?a.status("tape loaded: "+b):(a.C="",a.i="",a.s=jf,a.f=kf,a.G("No load address available for tape: "+b)):(a.w=0,a.v=e,a.status("tape attached: "+b),nf(a,0))}
function tf(a,b){if(a.i||!1===b)a.C="",a.i="",b||(a.f&&a.status(1==a.f?"tape detached":"tape unloaded"),a.s=jf,a.f=kf,sf(a))}h.save=function(){return(new O(this)).data()};h.restore=function(){return!0};h.Mc=function(){return this.b&65534};h.Fd=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&Sb(this.a,this.M)):(this.b&=-129,this.b|=2048,this.A=0,Tb(this.a,this.R,1E3/Math.round(this.O/10))));this.b=this.b&-66|a&65};h.Lc=function(){this.b&=-129;this.b|=2048;return this.A};h.Ed=function(){};
var wf={},of=(wf[65384]=[null,null,$b.prototype.Mc,$b.prototype.Fd,"PRS"],wf[65386]=[null,null,$b.prototype.Lc,$b.prototype.Ed,"PRB"],wf);function xf(a,b,c){x.call(this,"Disk",{id:a.oa+".disk"+m(++yf,4)},xf);this.controller=a;this.l=a.l;this.F=a.F;this.f=b;this.wa=b.name;this.vb=b.vb;zf(this,c,b.U,b.Y,b.S,b.ha);F(this)}var yf=0;z(xf);h=xf.prototype;h.ia=function(a,b,c,d){this.F=d};
function zf(a,b,c,d,e,f){a.mode=b;a.U=c;a.Y=d;a.S=e;a.ha=f;a.a=[];if("preload"!=a.mode){b=Array(a.U);for(c=0;c<b.length;c++){d=Array(a.Y);for(e=0;e<d.length;e++){f=Array(a.S);for(var g=1;g<=f.length;g++)f[g-1]=Af(null,c,e,g,a.ha,0);d[e]=f}b[c]=d}a.a=b}a.b=null}
function Bf(a,b,c,d,e){var f=c;if(a.g)return!0;a.wa=b;a.Da=c;a.Zb=q(c);a.g=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ia[d];if(e){a.U=e[0];a.Y=e[1];a.S=e[2];a.ha=e[3]||512;c=a.ha>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.U);for(d=0;d<a.a.length;d++)for(var w=a.a[d]=Array(a.Y),D=0;D<w.length;D++)for(var U=w[D]=Array(a.S),xa=0;xa<U.length;xa++){for(var Vb=Af(null,d,D,xa+1,a.ha,0),Oe=Vb.data,kc=0;kc<c;kc++,f+=4)var cg=Oe[kc]=b.getInt32(f,
!0),e=e+cg&-1;Vb.ba=c;U[xa]=Vb}a.b=e;c=a}else a.G("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.f,c,a.wa,a.Da),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=la(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ma(c,"/")&&(d="dir"),f=v()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.vb?"":e)+"&format=json"));return!!r(f,
null,!0,function(b,c,d){Cf(a,b,c,d)})}
function Cf(a,b,c,d){var e=null;a.c=!1;var f=0>d&&a.l&&!a.l.j.N;if(d)a.controller.G('Unable to load disk "'+a.wa+'" (error '+d+": "+b+")",f);else{Ra(a.controller.oa,b,c);try{if(0<q(a.Zb,!0).toLowerCase().indexOf("-readonly"))a.c=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.c=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.wa]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)t(k[0]);else{a.U=k.length;a.Y=k[0].length;a.S=k[0][0].length;var l=k[0][0][0];a.ha=l&&l.length||512;for(d=c=0;d<a.U;d++)for(f=0;f<a.Y;f++)for(g=0;g<a.S;g++)if(l=k[d][f][g]){var n=l.length;void 0===n&&(n=l.length=512);var n=n>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var u=l.data;if(void 0===u){var w=l.bytes;if(void 0!==w&&w.length){for(var D=n<<2,U=w.length;U<D;U++)w[U]=p;Df(l,w)}else u=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=u;delete l.bytes}Af(l,d,f);for(D=0;D<
u.length;D++)c=c+u[D]&-1}a.a=k;a.b=c;e=a}else t("Empty disk image: "+a.wa)}catch(xa){t("Disk image error ("+b+"): "+xa.message)}}a.g&&(a.g.call(a.i,a.f,e,a.wa,a.Da),a.g=null)}function Af(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.ie=b;a.je=c;a.la=a.ba=0;a.va=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.f,g=this.a[a];if(g){var k=g[b];if(!k&&f.ec&&b<f.Y)for(k=g[b]=Array(f.fc),g=0;g<k.length;g++)k[g]=Af(null,a,b,g+1,f.Sb,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.ec&&9==f.Ib&&(d=k[g]=Af(null,a,b,f.Ib,f.Sb,0))}}e&&e(d,!1);return d};function Df(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
this.m="";10!=a&&(this.m+=String.fromCharCode(a))}this.c&=-129;Tb(this.a,this.$,1E3/Math.round(this.R/10))}};var jf={},gf=(jf[65392]=[null,null,Z.prototype.Tc,Z.prototype.Md,"RCSR"],jf[65394]=[null,null,Z.prototype.Sc,Z.prototype.Ld,"RBUF"],jf[65396]=[null,null,Z.prototype.nd,Z.prototype.fe,"XCSR"],jf[65398]=[null,null,Z.prototype.md,Z.prototype.ee,"XBUF"],jf);Ga(function(){for(var a=E(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Z(d);C(d,c)}});
function $b(a){x.call(this,"PC11",a,$b);this.c=a.autoMount||null;this.m=0;this.O=a.baudReceive||3600;this.w=this.A=this.b=0;this.v=[];this.s=kf;this.f=lf;this.C=this.i="";this.K=this.ga=this.fa=null;this.I=-1;this.D=!Aa("Mobi")&&window&&"FileReader"in window}z($b);var kf="",lf=0;h=$b.prototype;
h.Z=function(a,b,c){var d=this,e=lf;switch(b){case "listTapes":return this.o[b]=c,c.onchange=function(){var a=d.o.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){t("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.o[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.o[b]=c,c.onclick=function(){var a=
d.o.listTapes;a&&mf(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.D){c.parentNode.removeChild(c);break}this.o[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;mf(d,q(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.o[b]=c,!0}return!1};
h.ia=function(a,b,c,d){this.l=a;this.g=b;this.a=c;this.F=d;this.J=nf(a);var e=this;if((this.c=rc(this.l,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){t("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.M=Ub(56,4);this.R=Rb(this.a,function(){1==(e.b&32769)&&!(e.b&128)&&e.w<e.v.length&&(e.A=e.v[e.w++]&255,of(e,e.w/e.v.length*100),e.b|=128,e.b&=-2049,e.b&64&&Sb(e.a,e.M))});cb(b,this,pf);qf(this,"None",kf,!0);this.D&&qf(this,"Local Tape","?");
qf(this,"Remote Tape","??");rf(this)||F(this)};h.ka=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.A=0};function rf(a){a.m=0;if(a.c){var b=a.c.path||"",c;if(!(c=a.c.name))a:{if((c=a.o.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=q(b,!0)}b&&c?sf(a,c,b,1,!0):tf(a)}return!!a.m}
function mf(a,b,c,d,e){if(c)if("?"==c)a.G('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=q(c);a.status("Attempting to load "+c+' as "'+b+'"');a.s="??"}else a.s=c;sf(a,b,c,d,!1,e)}else uf(a,!1)}function sf(a,b,c,d,e,f){var g=-1;if(a.i.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,uf(a,!0),a.j.Ea?a.G("PC11 busy"):(e&&a.m++,vf(a,b,c,d,f)?g++:a.j.Ea=!0);g&&wf(a,a.C,a.i,a.f,a.K,a.ga,a.fa)}
function vf(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),wf(a,b,c,d,e),a.s="?");tf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):v()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!r(f,null,!0,function(e,f,g){var k=0>g&&a.l&&!a.l.j.N;g?a.G('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(Ra(a.oa,e,f),(e=ta(e,f))&&wf(a,b,c,d,e.K,e.ga,e.fa));
a.j.Ea=!1;a.m&&(a.m--,a.m||F(a));tf(a)})}function qf(a,b,c,d){if((a=a.o.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function tf(a){var b=a.o.listTapes;if(b&&b.options){a=a.s||a.i;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
function of(a,b){b|=0;if(b!==a.I){var c=a.o.readProgress;c&&(c=(c=E(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.I=b}}function wf(a,b,c,d,e,f,g){a.C=b;a.i=c;a.f=d;a.K=e;a.ga=f;a.fa=g;2==d?a.J&&df(a.J,e,f,g)?a.status("tape loaded: "+b):(a.C="",a.i="",a.s=kf,a.f=lf,a.G("No load address available for tape: "+b)):(a.w=0,a.v=e,a.status("tape attached: "+b),of(a,0))}
function uf(a,b){if(a.i||!1===b)a.C="",a.i="",b||(a.f&&a.status(1==a.f?"tape detached":"tape unloaded"),a.s=kf,a.f=lf,tf(a))}h.save=function(){return(new O(this)).data()};h.restore=function(){return!0};h.Mc=function(){return this.b&65534};h.Fd=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&Sb(this.a,this.M)):(this.b&=-129,this.b|=2048,this.A=0,Tb(this.a,this.R,1E3/Math.round(this.O/10))));this.b=this.b&-66|a&65};h.Lc=function(){this.b&=-129;this.b|=2048;return this.A};h.Ed=function(){};
var xf={},pf=(xf[65384]=[null,null,$b.prototype.Mc,$b.prototype.Fd,"PRS"],xf[65386]=[null,null,$b.prototype.Lc,$b.prototype.Ed,"PRB"],xf);function yf(a,b,c){x.call(this,"Disk",{id:a.oa+".disk"+m(++zf,4)},yf);this.controller=a;this.l=a.l;this.F=a.F;this.f=b;this.wa=b.name;this.vb=b.vb;Af(this,c,b.U,b.Y,b.S,b.ha);F(this)}var zf=0;z(yf);h=yf.prototype;h.ia=function(a,b,c,d){this.F=d};
function Af(a,b,c,d,e,f){a.mode=b;a.U=c;a.Y=d;a.S=e;a.ha=f;a.a=[];if("preload"!=a.mode){b=Array(a.U);for(c=0;c<b.length;c++){d=Array(a.Y);for(e=0;e<d.length;e++){f=Array(a.S);for(var g=1;g<=f.length;g++)f[g-1]=Bf(null,c,e,g,a.ha,0);d[e]=f}b[c]=d}a.a=b}a.b=null}
function Cf(a,b,c,d,e){var f=c;if(a.g)return!0;a.wa=b;a.Da=c;a.Zb=q(c);a.g=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ia[d];if(e){a.U=e[0];a.Y=e[1];a.S=e[2];a.ha=e[3]||512;c=a.ha>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.U);for(d=0;d<a.a.length;d++)for(var w=a.a[d]=Array(a.Y),D=0;D<w.length;D++)for(var U=w[D]=Array(a.S),xa=0;xa<U.length;xa++){for(var Vb=Bf(null,d,D,xa+1,a.ha,0),Oe=Vb.data,kc=0;kc<c;kc++,f+=4)var dg=Oe[kc]=b.getInt32(f,
!0),e=e+dg&-1;Vb.ba=c;U[xa]=Vb}a.b=e;c=a}else a.G("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.f,c,a.wa,a.Da),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=la(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ma(c,"/")&&(d="dir"),f=v()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.vb?"":e)+"&format=json"));return!!r(f,
null,!0,function(b,c,d){Df(a,b,c,d)})}
function Df(a,b,c,d){var e=null;a.c=!1;var f=0>d&&a.l&&!a.l.j.N;if(d)a.controller.G('Unable to load disk "'+a.wa+'" (error '+d+": "+b+")",f);else{Ra(a.controller.oa,b,c);try{if(0<q(a.Zb,!0).toLowerCase().indexOf("-readonly"))a.c=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.c=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.wa]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)t(k[0]);else{a.U=k.length;a.Y=k[0].length;a.S=k[0][0].length;var l=k[0][0][0];a.ha=l&&l.length||512;for(d=c=0;d<a.U;d++)for(f=0;f<a.Y;f++)for(g=0;g<a.S;g++)if(l=k[d][f][g]){var n=l.length;void 0===n&&(n=l.length=512);var n=n>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var u=l.data;if(void 0===u){var w=l.bytes;if(void 0!==w&&w.length){for(var D=n<<2,U=w.length;U<D;U++)w[U]=p;Ef(l,w)}else u=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=u;delete l.bytes}Bf(l,d,f);for(D=0;D<
u.length;D++)c=c+u[D]&-1}a.a=k;a.b=c;e=a}else t("Empty disk image: "+a.wa)}catch(xa){t("Disk image error ("+b+"): "+xa.message)}}a.g&&(a.g.call(a.i,a.f,e,a.wa,a.Da),a.g=null)}function Bf(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.ie=b;a.je=c;a.la=a.ba=0;a.va=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.f,g=this.a[a];if(g){var k=g[b];if(!k&&f.ec&&b<f.Y)for(k=g[b]=Array(f.fc),g=0;g<k.length;g++)k[g]=Bf(null,a,b,g+1,f.Sb,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.ec&&9==f.Ib&&(d=k[g]=Bf(null,a,b,f.Ib,f.Sb,0))}}e&&e(d,!1);return d};function Ef(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.c)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.ba?f<a.la?(a.ba+=a.la-f,a.la=f):f>=a.la+a.ba&&(a.ba+=f-(a.la+a.ba)+1):(a.la=f,a.ba=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function Ef(a,b){var c=a.Y*a.S,d=b/c|0;return d<a.U?(b%=c,a.seek(d,b/a.S|0,b%a.S+1)):null}function Ff(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}h.save=function(){var a=0,b=[];b[a++]=[this.Da,this.b,this.U,this.Y,this.S,this.ha];if(!this.c)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.ba){for(var k=[],l=0,n=g.la,p=g.la+g.ba;n<p;)k[l++]=g.data[n++];b[a++]=[d,e,f,g.la,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?zf(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.b&&e[1]!=this.b&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.b+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],n=g[f++];if(k>=this.a.length||l>=this.a[k].length||n>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+n+") out of range ("+
function Ff(a,b){var c=a.Y*a.S,d=b/c|0;return d<a.U?(b%=c,a.seek(d,b/a.S|0,b%a.S+1)):null}function Gf(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}h.save=function(){var a=0,b=[];b[a++]=[this.Da,this.b,this.U,this.Y,this.S,this.ha];if(!this.c)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.ba){for(var k=[],l=0,n=g.la,p=g.la+g.ba;n<p;)k[l++]=g.data[n++];b[a++]=[d,e,f,g.la,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?Af(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.b&&e[1]!=this.b&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.b+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],n=g[f++];if(k>=this.a.length||l>=this.a[k].length||n>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+n+") out of range ("+
b+" changes applied)";b=-1;break}if(this.c){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.a[k][l][n]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.la=e;for(k.ba=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.G("Unable to restore disk '"+this.wa+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=Ef(this,a++);)Gf(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function Gf(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function N(a){x.call(this,"RL11",a,N);this.f=a.autoMount||null;this.s=0;this.b=Array(4);this.A=!Aa("Mobi")&&window&&"FileReader"in window}z(N);h=N.prototype;
h.Z=function(a,b,c){var d=this;switch(b){case "listDisks":return this.o[b]=c,c.onchange=function(){var a=d.o.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){t("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.o[b]=c,c.onchange=function(){var a=ja(c.value);null!=a&&Hf(d,a)},!0;case "loadDrive":return this.o[b]=
c,c.onclick=function(){var a=d.o.listDisks;a&&If(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.A){c.parentNode.removeChild(c);break}this.o[b]=c;c.onclick=function(){var a=d.o.listDrives;if(a&&a.options&&d.b)if(a=d.b[ja(a.value)||0])if(a=a.ca){var b;b="";for(var c=0,k;k=Ef(a,c++);)for(var l=0,n=k.length;l<n;l++)b+=String.fromCharCode(Ff(a,k,l));b=btoa(b);a=a.Zb.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=
h.toJSON=function(){var a;a=0;for(var b;b=Ff(this,a++);)Hf(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function Hf(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function N(a){x.call(this,"RL11",a,N);this.f=a.autoMount||null;this.s=0;this.b=Array(4);this.A=!Aa("Mobi")&&window&&"FileReader"in window}z(N);h=N.prototype;
h.Z=function(a,b,c){var d=this;switch(b){case "listDisks":return this.o[b]=c,c.onchange=function(){var a=d.o.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){t("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.o[b]=c,c.onchange=function(){var a=ja(c.value);null!=a&&If(d,a)},!0;case "loadDrive":return this.o[b]=
c,c.onclick=function(){var a=d.o.listDisks;a&&Jf(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.A){c.parentNode.removeChild(c);break}this.o[b]=c;c.onclick=function(){var a=d.o.listDrives;if(a&&a.options&&d.b)if(a=d.b[ja(a.value)||0])if(a=a.ca){var b;b="";for(var c=0,k;k=Ff(a,c++);)for(var l=0,n=k.length;l<n;l++)b+=String.fromCharCode(Gf(a,k,l));b=btoa(b);a=a.Zb.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=
typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+(a?" ("+a+")":"")+".");t(a)}else d.G("No disk loaded in drive.");else d.G("No disk drive selected.")};return!0;case "mountDrive":if(this.A)return this.o[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),
c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;If(d,q(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ia=function(a,b,c,d){this.l=a;this.g=b;this.a=c;this.F=d;if((this.f=rc(this.l,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){t("RL11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}Jf(this);this.D=Ub(112,5);cb(b,this,Kf,4194304);Lf(this,"None","",!0);this.A&&Lf(this,"Local Disk","?");Lf(this,"Remote Disk","??");Mf(this)||F(this)};
h.ka=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.l.Kb){for(a=0;a<this.b.length;a++)Nf(this,a,!0);Mf(this,!0)}}else if(!this.restore(a))return!1;if(a=this.o.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Hf(this,0)}}return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){Jf(this)};h.save=function(){return(new O(this)).data()};
h.restore=function(a){return Jf(this,a[0])};function Mf(a,b){b||(a.s=0);if(a.f)for(var c in a.f){var d=a.f[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.o.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=q(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.b.length)){!Of(a,g,f,e,!0)&&b&&F(a,!1);continue}a.G("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.s}
function If(a,b,c,d){var e=a.o.listDrives,e=e&&ja(e.value);if(void 0===e||0>e||e>=a.b.length)a.G("Unable to load the selected drive");else if(c)if("?"==c)a.G('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=q(c);a.status("Attempting to load "+c+' as "'+b+'"')}Of(a,e,b,c,!1,d)}else Nf(a,e)}
function Of(a,b,c,d,e,f){var g=-1,k=a.b[b];k.Da.toLowerCase()!=d.toLowerCase()&&(g++,Nf(a,b,!0),k.ub?a.G("RL11 busy"):(k.ub=!0,e&&(k.tb=!0,a.s++),k.jb=!!f,Bf(new xf(a,k,"preload"),c,d,f,a.gc)&&g++));return g}
h.gc=function(a,b,c,d,e){var f;a.ub=!1;b&&(f=b.a.length?[b.a.length,b.a[0].length,b.a[0][0].length,b.a[0][0][0].length]:[0,0,0,0],b&&f[0]>a.U||f[1]>a.Y)&&(this.G('Disk "'+c+'" too large for drive '+("RL"+a.zb)),b=null);b?(a.ca=b,a.wa=c,a.Da=d,this.G('Mounted disk "'+c+'" in drive '+("RL"+a.zb),a.tb||e),this.l&&xc(this.l)):a.jb=!1;a.tb&&(a.tb=!1,--this.s||F(this));Hf(this,a.zb)};
function Lf(a,b,c,d){if((a=a.o.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function Hf(a,b){if(0<=b&&b<a.b.length){var c=a.b[b],d=a.o.listDisks;a=a.o.listDrives;if(d&&a&&d.options&&a.options&&(a=ja(a.value),c=c.jb?"?":c.Da,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Nf(a,b,c){var d=a.b[b];if(d.ca||!1===c)d.wa="",d.Da="",d.ca=null,d.jb=!1,c||(a.G("Drive RL"+b+" unloaded",c),Hf(a,b))}
function Jf(a,b){var c=0;b||(b=[]);a.L=b[c++]||0;a.v=b[c++]||0;a.c=b[c++]||0;a.i=b[c++]||0;a.m=b[c++]||0;a.w=b[c]||0;for(b=0;b<a.b.length;b++){var d=a.b[b];void 0===d&&(d=a.b[b]={});c=a;d.zb=b;d.ub=d.jb=!1;d.name=c.ya;d.U=512;d.Y=2;d.S=40;d.ha=256;d.vb=!0;d.he=0;d.ge=0;d.Ib=1;d.fc=d.S;d.Sb=d.ha;d.ke=0;d.le=null;d.ca||(d.Da="");d.status=29|(512==d.U?128:0)}return!0}
c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Jf(d,q(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ia=function(a,b,c,d){this.l=a;this.g=b;this.a=c;this.F=d;if((this.f=rc(this.l,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){t("RL11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}Kf(this);this.D=Ub(112,5);cb(b,this,Lf,4194304);Mf(this,"None","",!0);this.A&&Mf(this,"Local Disk","?");Mf(this,"Remote Disk","??");Nf(this)||F(this)};
h.ka=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.l.Kb){for(a=0;a<this.b.length;a++)Of(this,a,!0);Nf(this,!0)}}else if(!this.restore(a))return!1;if(a=this.o.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";If(this,0)}}return!0};h.ja=function(a){return a?this.save():!0};h.reset=function(){Kf(this)};h.save=function(){return(new O(this)).data()};
h.restore=function(a){return Kf(this,a[0])};function Nf(a,b){b||(a.s=0);if(a.f)for(var c in a.f){var d=a.f[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.o.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=q(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.b.length)){!Pf(a,g,f,e,!0)&&b&&F(a,!1);continue}a.G("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.s}
function Jf(a,b,c,d){var e=a.o.listDrives,e=e&&ja(e.value);if(void 0===e||0>e||e>=a.b.length)a.G("Unable to load the selected drive");else if(c)if("?"==c)a.G('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=q(c);a.status("Attempting to load "+c+' as "'+b+'"')}Pf(a,e,b,c,!1,d)}else Of(a,e)}
function Pf(a,b,c,d,e,f){var g=-1,k=a.b[b];k.Da.toLowerCase()!=d.toLowerCase()&&(g++,Of(a,b,!0),k.ub?a.G("RL11 busy"):(k.ub=!0,e&&(k.tb=!0,a.s++),k.jb=!!f,Cf(new yf(a,k,"preload"),c,d,f,a.gc)&&g++));return g}
h.gc=function(a,b,c,d,e){var f;a.ub=!1;b&&(f=b.a.length?[b.a.length,b.a[0].length,b.a[0][0].length,b.a[0][0][0].length]:[0,0,0,0],b&&f[0]>a.U||f[1]>a.Y)&&(this.G('Disk "'+c+'" too large for drive '+("RL"+a.zb)),b=null);b?(a.ca=b,a.wa=c,a.Da=d,this.G('Mounted disk "'+c+'" in drive '+("RL"+a.zb),a.tb||e),this.l&&xc(this.l)):a.jb=!1;a.tb&&(a.tb=!1,--this.s||F(this));If(this,a.zb)};
function Mf(a,b,c,d){if((a=a.o.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function If(a,b){if(0<=b&&b<a.b.length){var c=a.b[b],d=a.o.listDisks;a=a.o.listDrives;if(d&&a&&d.options&&a.options&&(a=ja(a.value),c=c.jb?"?":c.Da,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Of(a,b,c){var d=a.b[b];if(d.ca||!1===c)d.wa="",d.Da="",d.ca=null,d.jb=!1,c||(a.G("Drive RL"+b+" unloaded",c),If(a,b))}
function Kf(a,b){var c=0;b||(b=[]);a.L=b[c++]||0;a.v=b[c++]||0;a.c=b[c++]||0;a.i=b[c++]||0;a.m=b[c++]||0;a.w=b[c]||0;for(b=0;b<a.b.length;b++){var d=a.b[b];void 0===d&&(d=a.b[b]={});c=a;d.zb=b;d.ub=d.jb=!1;d.name=c.ya;d.U=512;d.Y=2;d.S=40;d.ha=256;d.vb=!0;d.he=0;d.ge=0;d.Ib=1;d.fc=d.S;d.Sb=d.ha;d.ke=0;d.le=null;d.ca||(d.Da="");d.status=29|(512==d.U?128:0)}return!0}
h.hc=function(a,b,c,d,e,f){this.v=f&65535;this.L=this.L&-49|f>>12&48;this.w=f>>16&63;this.i=this.c=b<<7|(c?64:0)|d&63;this.m=65536-e&65535;a&&(this.L=this.L|a|32768);return!0};
h.zc=function(a,b,c,d,e,f,g){var k=0,l=a.ca,n=null,p;l||(k=5120,e=0);for(;e--;){if(!n){n=a.ca.seek(b,c,d+1);if(!n){k=5120;break}p=0}var u,w;if(0>(u=a.ca.read(n,p++))||0>(w=a.ca.read(n,p++))){k=5120;break}Nb(this.g,f,u|w<<8);if(Qb(this.g)){k=8192;break}f+=2;if(p>=l.ha&&(n=null,++d>=l.S&&(d=0,++c>=l.Y&&(c=0,++b>=l.U)))){k=5120;break}}return g(k,b,c,d,e,f)};
h.ud=function(a,b,c,d,e,f,g){var k=0,l=a.ca,n=null,p;l||(k=5120,e=0);for(;e--;){var u=Mb(this.g,f);if(Qb(this.g)){k=8192;break}f+=2;if(!n){n=a.ca.seek(b,c,d+1,!0);if(!n){k=5120;break}p=0}if(!a.ca.write(n,p++,u&255)||!a.ca.write(n,p++,u>>8)){k=5120;break}if(p>=l.ha&&(n=null,++d>=l.S&&(d=0,++c>=l.Y&&(c=0,++b>=l.U)))){k=5120;break}}return g(k,b,c,d,e,f)};h.Wc=function(){return this.L&65535};
h.Pd=function(a){this.L=this.L&-1023|a&1022;this.C=this.C&-4|(a&48)>>4;if(!(this.L&128)){var b;a=!0;var c=this.b[(this.L&768)>>8],d,e,f,g;this.L&=-2;switch(this.L&14){case 4:this.c&8&&(this.L&=63);this.m=c.status|this.i&64;break;case 6:1==(this.c&3)&&(b=this.c&65408,c=(this.c&16)<<2,this.i=this.c&4?this.i+b:this.i-b,this.c=this.i=this.i&65408|c);break;case 8:this.m=this.i;break;case 12:b=this.zc;case 10:b||(b=this.ud),d=this.c>>7,e=this.c&64?1:0,f=this.c&63,d>=c.U||f>=c.S?this.L|=37888:(g=(this.w&
63)<<16|this.v,a=65536-this.m&65535,a=b.call(this,c,d,e,f,a,g,this.hc.bind(this)))}a&&(this.L|=129,this.L&64&&Sb(this.a,this.D))}};h.Uc=function(){return this.v};h.Nd=function(a){this.v=a&65534};h.Xc=function(){return this.c};h.Qd=function(a){this.c=a};h.Yc=function(){return this.m};h.Rd=function(a){this.m=a};h.Vc=function(){return this.w};h.Od=function(a){this.w=a&63};
var Pf={},Kf=(Pf[63744]=[null,null,N.prototype.Wc,N.prototype.Pd,"RLCS"],Pf[63746]=[null,null,N.prototype.Uc,N.prototype.Nd,"RLBA"],Pf[63748]=[null,null,N.prototype.Xc,N.prototype.Qd,"RLDA"],Pf[63750]=[null,null,N.prototype.Yc,N.prototype.Rd,"RLMP"],Pf[63752]=[null,null,N.prototype.Vc,N.prototype.Od,"RLBE"],Pf);
function Qf(a,b,c){x.call(this,"Computer",a,Qf);this.j.N=!1;Rf(this,b);this.w=rc(this,"autoPower",a);this.l=0;this.M=a.busWidth||a.buswidth;this.b=Sf;this.s=null;this.i=this.I=!1;this.O=rc(this,"url")||"";(Math.random()+.1).toString(36);this.c=Tf(this);if(this.a=Ta("CPU",this.id)){this.F=Ta("Debugger",this.id);this.g=new vb({id:this.oa+".bus",busWidth:this.M},this.a,this.F);var d,e=A(this.id);if((this.A=Ta("Panel",this.id))&&this.A.Wa)for(b=0;b<e.length;b++)d=e[b],d.G=this.A.G,d.T=this.A.T,d.Wa=this.A.Wa;
this.T("PDPjs v1.30.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.T("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ia&&d.ia(this,this.g,this.a,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=rc(this,"state")||(f=!0,a.state))b=this.C=a,f||(this.i=!0,this.b=Sf),this.b&&(this.v=new O(this,
"1.30.3"),Uf(this.v)?b=null:delete this.v);!b&&this.b&&(b=Vf(this))&&(this.i=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.m=null,g.i=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(g.s=b,g.I=!0);F(g)})}else F(this);this.o.power||(this.w=!0);!c&&this.w&&Wf(this,this.Ya)}else t("Unable to find CPU component")}z(Qf);var Sf=0;
function Rf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.J=b}function rc(a,b,c){var d=b.toLowerCase(),d=La[b]||La[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Wf(a,b,c){for(var d=A(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Va(f)){Va(f,function(){Wf(a,b,c)});return}}b.call(a,c)}
function Xf(a,b){var c=new O(a,"1.30.3","validate");if(Uf(c)&&Yf(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Qf.prototype;
h.Ya=function(a){void 0===a&&(a=this.b||(this.s?1:Sf));if(!this.l){this.l++;var b=!1,c=!1;this.D=!1;var d=this.v||new O(this,"1.30.3");if(-1==a)b=!0;else if(a>Sf){if(Uf(d,this.s)){this.f=new O(this,"1.30.3","failsafe");Uf(this.f)&&(Zf(this,d),a=2,$f(this.f));this.f.set("timestamp",sa());ag(this.f);var e=this.b&&!this.i;if(1==a||ua("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Yf(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Uf(d,g):("error"==
f&&"no machine state"!=g?(this.G("Error: "+g),"unable to verify user"==g&&(za("user",""),this.c=null)):this.T(f+": "+g),$f(d),Uf(d)?(c=Yf(d),e=!0):c=!1))}e&&Xf(this,c?d:null)}else 2==a&&d.clear()}else Xf(this);delete this.s;delete this.v}e=A(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=bg(this,g,d,b,c));b=[d,a,c];-1!=a?Wf(this,this.Jb,b):this.Jb(b)}};
function bg(a,b,c,d,e){if(!b.j.N){b.j.N=!0;if(b.ka){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ka(f,d)&&f&&(t("Unable to restore state for "+b.type),a.C&&!a.I?(c.clear(),a.b=Sf,window&&window.location.reload()):a.D=!0,b.ka(null),e=!1)}if(!d&&b.Ob)for(a=b.Ob.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.Jb=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.j.N=!0;var d=this.o.power;d&&(d.textContent="Shutdown");this.a&&(bg(this,this.a,b,c,a),this.xa(),this.a.Va());this.D&&(Zf(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.l=0};
function Zf(a,b){if(ua("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.3"};d.url=a.O;d.user=c;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
function dg(a,b,c){var d,e="none";if(a.l)return null;a.l--;var f=new O(a,"1.30.3"),g=new O(a,"1.30.3","validate"),k=sa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.3");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ja&&(c&&G(a.a),d=a.a.ja(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.j.N=!1,!1===d&&(e=null)));for(var k=A(a.id),l=0;l<k.length;l++){var n=k[l];n.j.N&&(n.ja&&(d=n.ja(b,c),"object"===typeof d&&f.set(n.id,
d)),c&&(n.j.N=!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.c&&eg(a,a.c,f.toString()),ag(g)&&ag(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=3==a.b),d&&f.clear(k)):e=f.toString());c&&(a.j.N=!1,b=a.o.power)&&(b.textContent="Power");a.l=0;return e}h.reset=function(){this.g&&this.g.reset&&this.g.reset();this.a&&this.a.reset&&this.a.reset();for(var a=A(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.g&&c!==this.a&&c.reset&&c.reset()}this.xa(-1)};
var Qf={},Lf=(Qf[63744]=[null,null,N.prototype.Wc,N.prototype.Pd,"RLCS"],Qf[63746]=[null,null,N.prototype.Uc,N.prototype.Nd,"RLBA"],Qf[63748]=[null,null,N.prototype.Xc,N.prototype.Qd,"RLDA"],Qf[63750]=[null,null,N.prototype.Yc,N.prototype.Rd,"RLMP"],Qf[63752]=[null,null,N.prototype.Vc,N.prototype.Od,"RLBE"],Qf);
function Rf(a,b,c){x.call(this,"Computer",a,Rf);this.j.N=!1;Sf(this,b);this.w=rc(this,"autoPower",a);this.l=0;this.M=a.busWidth||a.buswidth;this.b=Tf;this.s=null;this.i=this.I=!1;this.O=rc(this,"url")||"";(Math.random()+.1).toString(36);this.c=Uf(this);if(this.a=Ta("CPU",this.id)){this.F=Ta("Debugger",this.id);this.g=new vb({id:this.oa+".bus",busWidth:this.M},this.a,this.F);var d,e=A(this.id);if((this.A=Ta("Panel",this.id))&&this.A.Wa)for(b=0;b<e.length;b++)d=e[b],d.G=this.A.G,d.T=this.A.T,d.Wa=this.A.Wa;
this.T("PDPjs v1.30.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.T("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ia&&d.ia(this,this.g,this.a,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=rc(this,"state")||(f=!0,a.state))b=this.C=a,f||(this.i=!0,this.b=Tf),this.b&&(this.v=new O(this,
"1.30.3"),Vf(this.v)?b=null:delete this.v);!b&&this.b&&(b=Wf(this))&&(this.i=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.m=null,g.i=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(g.s=b,g.I=!0);F(g)})}else F(this);this.o.power||(this.w=!0);!c&&this.w&&Xf(this,this.Ya)}else t("Unable to find CPU component")}z(Rf);var Tf=0;
function Sf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.J=b}function rc(a,b,c){var d=b.toLowerCase(),d=La[b]||La[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Xf(a,b,c){for(var d=A(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Va(f)){Va(f,function(){Xf(a,b,c)});return}}b.call(a,c)}
function Yf(a,b){var c=new O(a,"1.30.3","validate");if(Vf(c)&&Zf(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Rf.prototype;
h.Ya=function(a){void 0===a&&(a=this.b||(this.s?1:Tf));if(!this.l){this.l++;var b=!1,c=!1;this.D=!1;var d=this.v||new O(this,"1.30.3");if(-1==a)b=!0;else if(a>Tf){if(Vf(d,this.s)){this.f=new O(this,"1.30.3","failsafe");Vf(this.f)&&($f(this,d),a=2,ag(this.f));this.f.set("timestamp",sa());bg(this.f);var e=this.b&&!this.i;if(1==a||ua("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Zf(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Vf(d,g):("error"==
f&&"no machine state"!=g?(this.G("Error: "+g),"unable to verify user"==g&&(za("user",""),this.c=null)):this.T(f+": "+g),ag(d),Vf(d)?(c=Zf(d),e=!0):c=!1))}e&&Yf(this,c?d:null)}else 2==a&&d.clear()}else Yf(this);delete this.s;delete this.v}e=A(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=cg(this,g,d,b,c));b=[d,a,c];-1!=a?Xf(this,this.Jb,b):this.Jb(b)}};
function cg(a,b,c,d,e){if(!b.j.N){b.j.N=!0;if(b.ka){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ka(f,d)&&f&&(t("Unable to restore state for "+b.type),a.C&&!a.I?(c.clear(),a.b=Tf,window&&window.location.reload()):a.D=!0,b.ka(null),e=!1)}if(!d&&b.Ob)for(a=b.Ob.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.Jb=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.j.N=!0;var d=this.o.power;d&&(d.textContent="Shutdown");this.a&&(cg(this,this.a,b,c,a),this.xa(),this.a.Va());this.D&&($f(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.l=0};
function $f(a,b){if(ua("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.3"};d.url=a.O;d.user=c;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
function eg(a,b,c){var d,e="none";if(a.l)return null;a.l--;var f=new O(a,"1.30.3"),g=new O(a,"1.30.3","validate"),k=sa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.3");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ja&&(c&&G(a.a),d=a.a.ja(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.j.N=!1,!1===d&&(e=null)));for(var k=A(a.id),l=0;l<k.length;l++){var n=k[l];n.j.N&&(n.ja&&(d=n.ja(b,c),"object"===typeof d&&f.set(n.id,
d)),c&&(n.j.N=!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.c&&fg(a,a.c,f.toString()),bg(g)&&bg(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=3==a.b),d&&f.clear(k)):e=f.toString());c&&(a.j.N=!1,b=a.o.power)&&(b.textContent="Power");a.l=0;return e}h.reset=function(){this.g&&this.g.reset&&this.g.reset();this.a&&this.a.reset&&this.a.reset();for(var a=A(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.g&&c!==this.a&&c.reset&&c.reset()}this.xa(-1)};
h.start=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.xa(-1)};h.stop=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.xa(-1)};
h.xa=function(a){if(this.a){var b=this.a,c=b.o.speed;c&&(c.textContent=b.j.P&&b.pa?b.pa.toFixed(2)+"Mhz":"Stopped")}if(this.A&&(b=this.A,b.s)){var c=b.a.j.P,d=!!(b.a.u&4);if(!(0<a&&60>(b.w+=a))){for(var e=0;e<b.a.h.length;e++)kb(b,"R"+e,b.a.h[e]);e=Yb(b.a);kb(b,"PS",e);kb(b,"NF",e&8?1:0,1);kb(b,"ZF",e&4?1:0,1);kb(b,"VF",e&2?1:0,1);kb(b,"CF",e&1?1:0,1);b.w=0}sb(b,0<a&&c&&!d?b.a.h[7]:b.da);rb(b,b.m);a=b.a.Ba?b.a.Fa&16?1:2:4;tb(b,"B22",a&1);tb(b,"B18",a&2);tb(b,"B16",a&4)}};
h.Z=function(a,b,c){var d=this;switch(b){case "power":return this.o[b]=c,c.onclick=function(){d.l||(d.j.N?dg(d,!1,!0):Wf(d,d.Ya))},!0;case "reset":return this.o[b]=c,c.onclick=function(){if(d.j.N&&!d.l)if(d.b&&!d.m){var a=ua("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");dg(d,a,!0);!a&&d.C?window&&window.location.reload():(a||(d.Kb=!0),d.Ya(Sf),d.Kb=!1)}else d.reset(),d.a&&d.a.Va()},!0;case "save":if(ma(v(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.o[b]=c,c.onclick=function(){var a=Tf(d,!0);if(a){var b=!!(d.b&&!d.m||d.C),c=dg(d,b);b?eg(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};
function Tf(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=fg(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function fg(a,b){a.c=null;b=r(v()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){t(d.message+" ("+c+")")}return a.c}function Vf(a){var b=null;a.c&&(b=v()+"/api/v1/user?req=load&user="+a.c+"&state="+gg(a,"1.30.3"));return b}
function eg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=gg(a,"1.30.3");d.data=c;b=r(v()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.G("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.G(c),za("user",""),a.c=null)}}
function mf(a){var b;a=A(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function xc(a){if(a.Wa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.Wa.focus();window&&window.scrollTo(b,c)}}Ga(function(){for(var a=E(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=E(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new Qf(g,d,!0);C(g,f);g.w&&Wf(g,g.Ya)}});
Ba.show.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ta("Computer",c.id))&&c.R&&!c.j.N&&c.Ya(-1)}});Ba.exit.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ta("Computer",c.id))&&c.j.N&&dg(c,!(!c.b||c.m),!0)}});function O(a,b,c){this.id=a.id;this.key=gg(a,b,c);this.F=a.F;$f(this,a.mc)}function gg(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
O.prototype={constructor:O,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){$f(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function $f(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function ag(a){var b=!0;if(wa()){var c=JSON.stringify(a[a.id]);za(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Yf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function Uf(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:wa()&&(b=ya(a.key))?(a[a.id]=b,a.a=!0):!1}var hg=0;
function ig(a,b,c,d,e,f){e("Loading "+a+"...");r(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):jg(k,a,b,c,d,e,f)})}
function jg(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(Ra(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?kg(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function kg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);kg(a,b,c)}})}else c(a,null)}
function lg(a,b,c,d){function e(a){if(void 0===k){var b=g&&E(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=oa(a))}function f(a){e("Error: "+a);l&&(--hg||Ia(!0));l=!1}var g,k,l=!0;hg++;Qa[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],u=document.createElement("style");u.type="text/css";u.styleSheet?u.styleSheet.cssText=n:u.appendChild(document.createTextNode(n));p.appendChild(u)}c||
(c="/versions/pdpjs/1.30.3/components.xsl");n=function(d,k){k?ig(c,null,null,!1,e,function(d,l){l?(Ra(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--hg||Ia(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--hg||Ia(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ig(b,a,d,!0,e,n):jg(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPDP11=function(a,b,c,d){Ia(!1);return lg(a,b,c,d)};window.enableEvents=Ia;window.sendEvent=Ja;})();//# sourceMappingURL=/tmp/pdpjs/1.30.3/pdp11.map
h.Z=function(a,b,c){var d=this;switch(b){case "power":return this.o[b]=c,c.onclick=function(){d.l||(d.j.N?eg(d,!1,!0):Xf(d,d.Ya))},!0;case "reset":return this.o[b]=c,c.onclick=function(){if(d.j.N&&!d.l)if(d.b&&!d.m){var a=ua("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");eg(d,a,!0);!a&&d.C?window&&window.location.reload():(a||(d.Kb=!0),d.Ya(Tf),d.Kb=!1)}else d.reset(),d.a&&d.a.Va()},!0;case "save":if(ma(v(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.o[b]=c,c.onclick=function(){var a=Uf(d,!0);if(a){var b=!!(d.b&&!d.m||d.C),c=eg(d,b);b?fg(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};
function Uf(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=gg(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function gg(a,b){a.c=null;b=r(v()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){t(d.message+" ("+c+")")}return a.c}function Wf(a){var b=null;a.c&&(b=v()+"/api/v1/user?req=load&user="+a.c+"&state="+hg(a,"1.30.3"));return b}
function fg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=hg(a,"1.30.3");d.data=c;b=r(v()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.G("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.G(c),za("user",""),a.c=null)}}
function nf(a){var b;a=A(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function xc(a){if(a.Wa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.Wa.focus();window&&window.scrollTo(b,c)}}Ga(function(){for(var a=E(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=E(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new Rf(g,d,!0);C(g,f);g.w&&Xf(g,g.Ya)}});
Ba.show.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ta("Computer",c.id))&&c.R&&!c.j.N&&c.Ya(-1)}});Ba.exit.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ta("Computer",c.id))&&c.j.N&&eg(c,!(!c.b||c.m),!0)}});function O(a,b,c){this.id=a.id;this.key=hg(a,b,c);this.F=a.F;ag(this,a.mc)}function hg(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
O.prototype={constructor:O,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ag(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function ag(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function bg(a){var b=!0;if(wa()){var c=JSON.stringify(a[a.id]);za(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Zf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function Vf(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:wa()&&(b=ya(a.key))?(a[a.id]=b,a.a=!0):!1}var ig=0;
function jg(a,b,c,d,e,f){e("Loading "+a+"...");r(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):kg(k,a,b,c,d,e,f)})}
function kg(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(Ra(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?lg(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function lg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);lg(a,b,c)}})}else c(a,null)}
function mg(a,b,c,d){function e(a){if(void 0===k){var b=g&&E(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=oa(a))}function f(a){e("Error: "+a);l&&(--ig||Ia(!0));l=!1}var g,k,l=!0;ig++;Qa[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],u=document.createElement("style");u.type="text/css";u.styleSheet?u.styleSheet.cssText=n:u.appendChild(document.createTextNode(n));p.appendChild(u)}c||
(c="/versions/pdpjs/1.30.3/components.xsl");n=function(d,k){k?jg(c,null,null,!1,e,function(d,l){l?(Ra(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--ig||Ia(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--ig||Ia(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?jg(b,a,d,!0,e,n):kg(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPDP11=function(a,b,c,d){Ia(!1);return mg(a,b,c,d)};window.enableEvents=Ia;window.sendEvent=Ja;})();//# sourceMappingURL=/tmp/pdpjs/1.30.3/pdp11.map