Added various MACRO-10 expression improvements

This commit is contained in:
Jeff 2017-03-18 17:12:54 -07:00 committed by Jeff Parsons
commit 1c3c9c9856
16 changed files with 561 additions and 488 deletions

View file

@ -12,7 +12,7 @@ indent_style = space
indent_size = 8
trim_trailing_whitespace = true
[*.{ASM,INC,MAC,NASM,LST,asm,inc,mac,nasm,lst,d80}]
[*.{ASM,INC,LST,MAC,NASM,asm,inc,lst,mac,nasm,d80,ASM.txt,INC.txt,LST.txt,MAC.txt,NASM.txt}]
indent_style = tab
indent_size = 8
trim_trailing_whitespace = true

View file

@ -0,0 +1,27 @@
TITLE STORE TEXT CHARACTER BY CHARACTER
SUBTTL %1 5-APR-72
DEFINE TEXT (C)<
N==0 ;;INITIAL CONDITION
IRPC C,<N==N+1> ;;COUNT CHARACTERS
CODE (N,C) ;;CALL MACRO TO STORE TEXT
> ;END OF TEXT MACRO
DEFINE CODE (N,C)<
ZZ==N ;;INITIAL CONDITION
IRPC C,<
IFN ZZ&777B8,<
EXP ZZ ;;WORD FULL
ZZ==0> ;;START AGAIN WITH 0
ZZ=ZZ+9+"C"> ;;END OF IRPC
IFN ZZ,<DEFINE SHIFT ;;REMAINDER LEFT
IFE ZZ&777B8,> ;;IF NOT LEFT JUSTIFIED
ZZ=ZZ+9 ;;MOVE LEFT 9 BITS
SHIFT> ;;RECURSE
> ;;END OF DEFINE
SHIFT ;;START MOVING LEFT
EXP ZZ> ;;END OF IFN ZZ
> ;END OF CODE MACRO
TEXT (ABCDEFGHIJKL)
END

View file

@ -14,14 +14,14 @@ DEC PDP-10 Opcode Tests
The PDP-10 machine below loads the following test:
- [PDP-10 Half-Word Opcode Test](optest-v01.json)
- [PDP-10 Half-Word Opcode Test](OPTEST01.json)
Details on how to run and modify the test, and perform similar tests in [SIMH](https://github.com/simh/simh),
are provided below.
{% include machine.html id="testka10" %}
The [PDP-10 Half-Word Opcode Test](optest-v01.json) file specifies that the following words:
The [PDP-10 Half-Word Opcode Test](OPTEST01.json) file specifies that the following words:
0o505040111111, // HRLI 1,111111
0o541040444444, // HRRI 1,444444
@ -34,7 +34,7 @@ comments display the instructions that correspond to each word.
If you want to alter or add new instructions, the PDP-10 Debugger now includes a rudimentary assembler. Using the `a` command,
along with an optional start address, you can enter "assembler mode". For example, here's how the first four instructions from
the [PDP-10 Half-Word Opcode Test](optest-v01.json) could be entered by hand:
the [PDP-10 Half-Word Opcode Test](OPTEST01.json) could be entered by hand:
>> a 100
begin assemble at 000100

View file

@ -6,6 +6,7 @@ machines:
- id: testka10
type: pdp10
debugger: true
commands: a 100 /apps/pdp10/tests/MACTEST.MAC
---
PDP-10 Test Machine with Debugger

View file

@ -4,7 +4,7 @@
<name pos="center">PDP-10 (Model KA10) with Debugger</name>
<computer id="computer" busWidth="18"/>
<cpu id="cpu" model="1001" cycles="1000000"/>
<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp10/tests/optest-v01.json"/>
<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp10/tests/OPTEST01.json"/>
<device id="default" type="default"/>
<serial id="serial" adapter="0" binding="print" upperCase="true"/>
<panel ref="/devices/pdp10/panel/ka10/debugger/front.xml"/>

View file

@ -4,7 +4,7 @@
<name pos="center">PDP-10 Test Machine</name>
<computer id="computer" busWidth="18"/>
<cpu id="cpu" model="1001" cycles="1000000"/>
<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp10/tests/optest-v01.json"/>
<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp10/tests/OPTEST01.json"/>
<device id="default" type="default"/>
<serial id="serial" adapter="0" binding="print" upperCase="true"/>
<panel ref="/devices/pdp10/panel/test/terminal.xml"/>

View file

@ -427,8 +427,8 @@ r(b.od)+" IRR="+r(b.ac)+" ISR="+r(b.Ec)+" DELAY="+b.We;e.ba.P(c)}});Al(d,2048,fu
l.Xb=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0};
l.reset=function(a){var b;Fl(this);this.F=Array(this.za);for(b=0;b<this.za;b++)Gl(this,b);this.hc=Array(this.ha);Hl(this,Il,Jl);1<this.ha&&Hl(this,Kl,Ll);this.va=this.ta=null;this.G=Array((this.ca|0)==xl?6:3);for(b=0;b<this.G.length;b++)Ml(this,b);this.ga=this.Ca=this.J=this.xa=null;this.da=ih;this.ca==ll&&(this.aa=0);if(this.ca>=eh){this.D=Nl;this.L=0;this.K=Ol;this.oa=0;this.M=Pl|Ql;512<=Rl(this)&&(this.M|=Sl);+Tl(this,hl,void 0)==Ul&&(this.M|=Vl);(this.ca|0)==xl&&(this.M=this.M|Wl|Xl);this.qa=
Yl|Zl;this.Y=Array(8);this.V=0;a&&(this.A=Array(Cl));$l(this,this.Ma);for(a=am;a<=bm;a++)this.A[a]=0;for(a=cm;a<dm;a++)void 0===this.A[a]&&(this.A[a]=0);a=0|+Tl(this,hl,void 0)<<em.Mg&em.yc;a|=+Tl(this,nl,void 0)?fm:0;b=+Tl(this,gl,void 0);a|=b?b-1<<gm.Mg&gm.yc|gm.ol:0;this.A[hm]=a;this.A[im]=jm(this,0)<<4|jm(this,1);km(this)}};
function $l(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.P("CMOS date invalid ("+b+"), using "+c)):b&&a.P("CMOS date: "+c);a.A[lm]=c.getSeconds();a.A[mm]=0;a.A[nm]=c.getMinutes();a.A[om]=0;a.A[Gm]=c.getHours();a.A[Hm]=0;a.A[Im]=c.getDay()+1;a.A[Jm]=c.getDate();a.A[Km]=c.getMonth()+1;b=c.getFullYear();a.A[Lm]=b%100;b/=100;a.A[Mm]=b%10|b/10<<4;a.A[Nm]=38;a.A[Rd]=Om;a.A[Pm]=0;a.A[Dl]=Qm;a.ma=a.Z=0;a.Ha=a.Aa=null}
function El(a,b){var c=a.A[b];if(b<Nm){var d=!1;b!=Gm&&b!=Hm||a.A[Rd]&Om||(12>c?c=c?c:12:c=(c-=12)?c+128:140,d=!0);a.A[Rd]&Rm||(d&&128<c&&(c-=48),c=c%10|c/10<<4)}else b==Nm&&(a.A[b]^=Sm);return c}function Tm(a){var b;void 0===b&&(b=a.Aa);a.Z=Ed(a.H,a.O)+b;a.A[Rd]&Td&&Gd(a.H,b)}function km(a){for(var b=0,c=im;c<dm;c++)b+=a.A[c];a.A[Um]=b&255;a.A[dm]=b>>8}
function $l(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.P("CMOS date invalid ("+b+"), using "+c)):b&&a.P("CMOS date: "+c);a.A[lm]=c.getSeconds();a.A[mm]=0;a.A[nm]=c.getMinutes();a.A[om]=0;a.A[pm]=c.getHours();a.A[Hm]=0;a.A[Im]=c.getDay()+1;a.A[Jm]=c.getDate();a.A[Km]=c.getMonth()+1;b=c.getFullYear();a.A[Lm]=b%100;b/=100;a.A[Mm]=b%10|b/10<<4;a.A[Nm]=38;a.A[Rd]=Om;a.A[Pm]=0;a.A[Dl]=Qm;a.ma=a.Z=0;a.Ha=a.Aa=null}
function El(a,b){var c=a.A[b];if(b<Nm){var d=!1;b!=pm&&b!=Hm||a.A[Rd]&Om||(12>c?c=c?c:12:c=(c-=12)?c+128:140,d=!0);a.A[Rd]&Rm||(d&&128<c&&(c-=48),c=c%10|c/10<<4)}else b==Nm&&(a.A[b]^=Sm);return c}function Tm(a){var b;void 0===b&&(b=a.Aa);a.Z=Ed(a.H,a.O)+b;a.A[Rd]&Td&&Gd(a.H,b)}function km(a){for(var b=0,c=im;c<dm;c++)b+=a.A[c];a.A[Um]=b&255;a.A[dm]=b>>8}
l.save=function(){var a=new Xf(this);a.set(0,[this.C]);for(var b=[],c=0;c<this.F;c++){for(var d=this.F[c],e=d,f=[],g=0;g<e.oc.length;g++){var h=e.oc[g];f[g]=[h.ne,h.fg,h.pc,h.tb,h.qb,h.mode,h.hg,h.Oo,h.Po]}b[c]=[d.Mb,d.Xg,d.Xi,d.zb,f,d.Yi]}a.set(1,[b]);b=[];for(c=0;c<this.hc.length;c++)d=this.hc[c],b[c]=[d.We,d.Kc,d.Ld,d.od,d.ac,d.Ec,d.ge,d.nf];a.set(2,[b]);b=[];for(c=0;c<this.G.length;c++)d=this.G[c],b[c]=[d.pc,d.Mc,d.qb,d.je,d.Zg,d.mode,d.Qf,d.rd,d.ad,d.gd,d.Me,d.le,d.jd,d.Mb,d.Qe];a.set(3,[this.ta,
b,this.va]);a.set(4,[this.xa,this.J,this.Ca,this.ga,this.da]);this.ca>=eh&&(a.set(5,[this.D,this.L,this.K,this.oa,this.M,this.qa]),a.set(6,[this.Y[7],this.Y,this.V,this.A,this.ma,this.Z]));return a.data()};
l.restore=function(a){var b,c;b=a[0];Array.isArray(b[0])?this.C=b[0]:(this.C[0][0]=b[0],this.C[1][0]=b[1]&15,this.C[0][1]=b[2],this.C[1][1]=b[3]&15);Fl(this);b=a[1];for(c=0;c<this.za;c++)Gl(this,c,1==b.length?b[0][c]:b);b=a[2];for(c=0;c<this.ha;c++)Hl(this,c,c?Ll:Jl,b[0][c]);b=a[3];this.ta=b[0];this.va=b[2];for(c=0;c<this.G.length;c++)Ml(this,c,b[1][c]);b=a[4];this.xa=b[0];this.J=b[1];this.Ca=b[2];this.ga=b[3];this.da=b[4];if(b=a[5])this.D=b[0],this.L=b[1],this.K=b[2],this.oa=b[3],this.M=b[4],this.qa=
@ -456,7 +456,7 @@ function po(a,b,c,d,e,f){t(a,2304)&&w(a,d,e,f,"PIT"+b+".TIMER"+c,null,!0);f=b?3:
function yo(a,b,c,d,e){w(a,c,d,e,"PIT"+b+".CTRL",null,2048);e=0;c=d&zo;b?(e=3,a.va=d):a.ta=d;if(c==Ao){if(!(d&Bo))for(c=0;2>=c;c++)if(d&Co<<c){b=e+c;var f=a.G[b];f.Qe||(Bl(a,b),f.Mb=f.Zg|f.mode|f.Qf|(f.rd<f.ad?Do:0)|(f.gd?Eo:0),f.Qe=!0)}if(!(d&Fo))for(c=0;2>=c;c++)d&Co<<c&&Go(a,e+c)}else{c>>=Ho;var f=d&Io,g=d&Jo;d&=Ko;if(d==Lo)Go(a,e+c);else{e+=c;var h=a.G[e];h.Qf=d;h.mode=g;h.Zg=f;h.pc=[0,0];h.qb=[0,0];h.je=[0,0];h.gd=!1;h.Me=!1;h.le=!1;h.Qe=!1;oo(a,e);b==so&&c==to&&fh(a,uo);b==so&&c==wo&&255==a.hc[0].od&&
a.J==(Mo|No|Oo|Po)&&(b=a.G[0],b.Mc[0]=b.pc[0],b.Mc[1]=b.pc[1],b.jd=Ed(a.H,a.O))}}}function vo(a,b){a=a.G[b];(b=a.pc[1]<<8|a.pc[0])||(b=1==a.ad?256:65536);return b}function Pd(a,b){a=a.G[b];(b=a.Mc[1]<<8|a.Mc[0])||(b=1==a.ad?256:65536);return b}function Go(a,b){Bl(a,b);var c=a.G[b];c.je[0]=c.qb[0];c.je[1]=c.qb[1];c.Me=!0;oo(a,b)}function oo(a,b){a=a.G[b];a.rd=a.Qf==Qo?1:0;a.ad=a.Qf==Ro?2:1}
function Bl(a,b,c){var d=a.G[b];if(d.le&&(b!=wo||a.J&Mo)){var e=Ed(a.H,a.O),f=(e-d.jd)/a.Ba|0;0>f&&(d.jd=e,f=0);var g=vo(a,b),h=Pd(a,b)-f;d.mode==qo?(0>=h&&(h=0),h||(d.gd=!0,d.le=!1,b||hh(a,uo))):d.mode==So?(d.gd=1!=h,0>=h&&(h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&hh(a,uo))):d.mode==Qd&&(h-=f,0>=h&&(d.gd=!d.gd,h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&hh(a,uo)));d.qb[0]=h&255;d.qb[1]=h>>8&255;c&&(a.jd=0)}return d}
function Od(a,b){for(var c=0;c<a.G.length;c++)Bl(a,c,b);if(a.ca>=eh){b=a.H.T.sd;c=Ed(a.H,a.O);null==a.Aa&&(a.ma=Ed(a.H,a.O),a.Ha=1024,a.Aa=Math.floor(a.H.T.sd/a.Ha),Tm(a));c>=a.Z&&(a.A[Pm]|=To,a.A[Rd]&Td&&(a.A[Pm]|=Uo,hh(a,Vo)),a.Z=c+a.Aa);a.A[lm]==a.A[mm]&&a.A[nm]==a.A[om]&&a.A[Gm]==a.A[Hm]&&(a.A[Pm]|=Wo,a.A[Rd]&Xo&&(a.A[Pm]|=Uo,hh(a,Vo)));var d=c-a.ma,e=Math.floor(d/b);if(e&&!(a.A[Rd]&Yo)){for(;e--;)if(60<=++a.A[lm]&&(a.A[lm]=0,60<=++a.A[nm]&&(a.A[nm]=0,24<=++a.A[Gm]))){a.A[Gm]=0;a.A[Im]=a.A[Im]%
function Od(a,b){for(var c=0;c<a.G.length;c++)Bl(a,c,b);if(a.ca>=eh){b=a.H.T.sd;c=Ed(a.H,a.O);null==a.Aa&&(a.ma=Ed(a.H,a.O),a.Ha=1024,a.Aa=Math.floor(a.H.T.sd/a.Ha),Tm(a));c>=a.Z&&(a.A[Pm]|=To,a.A[Rd]&Td&&(a.A[Pm]|=Uo,hh(a,Vo)),a.Z=c+a.Aa);a.A[lm]==a.A[mm]&&a.A[nm]==a.A[om]&&a.A[pm]==a.A[Hm]&&(a.A[Pm]|=Wo,a.A[Rd]&Xo&&(a.A[Pm]|=Uo,hh(a,Vo)));var d=c-a.ma,e=Math.floor(d/b);if(e&&!(a.A[Rd]&Yo)){for(;e--;)if(60<=++a.A[lm]&&(a.A[lm]=0,60<=++a.A[nm]&&(a.A[nm]=0,24<=++a.A[pm]))){a.A[pm]=0;a.A[Im]=a.A[Im]%
7+1;var f;f=a.A[Lm];var g=Ja[a.A[Km]-1];28==g&&(f%4||!(f%100)&&f%400||g++);f=g;++a.A[Jm]>f&&(a.A[Jm]=1,12<++a.A[Km]&&(a.A[Km]=1,a.A[Lm]=(a.A[Lm]+1)%100))}a.A[Pm]|=Zo;a.A[Rd]&$o&&(a.A[Pm]|=Uo,hh(a,Vo))}a.ma=c-d%b}}l.Gm=function(a,b){var c=this.xa;this.ga&ap&&(this.J&bp?c=this.C[0][1]:this.B&&(c=cp(this.B)));w(this,a,null,b,"PPI_A",c);return c};l.jo=function(a,b,c){w(this,a,b,c,"PPI_A");this.xa=b};l.Hm=function(a,b){var c=this.J;w(this,a,null,b,"PPI_B",c);return c};
l.ko=function(a,b,c){w(this,a,b,c,"PPI_B");dp(this,b)};function dp(a,b){var c=!!(b&ep),d=!!(a.J&ep);a.J=b;a.B&&fp(a.B,!(b&bp),!!(b&Po));c!=d&&Vm(a,c)}l.Im=function(a,b){var c=0,c=(this.ca|0)==kl?this.J&No?c|this.C[1][1]&gp:c|this.C[1][1]>>4&1:this.J&hp?c|this.C[0][1]>>4:c|this.C[0][1]&15;this.J&Mo&&Bl(this,wo).gd&&(c=this.J&ep?c|ip:c|jp);w(this,a,null,b,"PPI_C",c,32896);return c};l.lo=function(a,b,c){w(this,a,b,c,"PPI_C");this.Ca=b};l.Jm=function(a,b){var c=this.ga;w(this,a,null,b,"PPI_CTRL",c);return c};
l.mo=function(a,b,c){w(this,a,b,c,"PPI_CTRL");this.ga=b};l.Sl=function(a,b){var c=this.B?cp(this.B):0;w(this,a,null,b,"8041_KBD",c);this.aa&=~kp;return c};l.tn=function(a,b,c){w(this,a,b,c,"8041_KBD")};l.Rl=function(a,b){var c=this.J;w(this,a,null,b,"8041_CTRL",c);return c};l.sn=function(a,b,c){w(this,a,b,c,"8041_CTRL");dp(this,b)};l.Tl=function(a,b){var c=this.aa;w(this,a,null,b,"8041_STATUS",c);return c};
@ -466,7 +466,7 @@ l.Vl=function(a,b){var c=this.J&~(zp|Ap)|(Ed(this.H)&64?Ap:0);w(this,a,null,b,"8
l.un=function(a,b,c){w(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.L=b;this.D|=np;a=0;this.L>=Bp&&(a=this.L^15,this.L=Bp);switch(this.L){case Cp:yp(this,this.K);break;case Dp:pp(this,this.K|Ol);break;case Ep:pp(this,this.K&~Ol);this.B&&mp(this.B);break;case Fp:this.B&&(a=this.B,a.A=[],t(a)&&Mb(a,"scan codes flushed"));pp(this,this.K|Ol);yp(this,Gp);rp(this,Yl|Zl);break;case Hp:yp(this,Ip);break;case Jp:yp(this,this.M);break;case Kp:yp(this,this.qa);break;case Lp:yp(this,this.K&Ol?0:Mp);break;case Bp:a&
1&&kf(this.H)}};function pp(a,b){a.K=b;a.D=a.D&~Np|b&Op;a.B&&fp(a.B,!!(b&Pp),!(b&Ol))}function yp(a,b,c){0<=b&&(a.oa=b,c?a.D|=kp:(a.D&=~kp,a.D|=lp))}function rp(a,b){a.qa=b;oc(a.ka,!!(b&Zl));b&Yl||kf(a.H)}function Qp(a,b){a.ca<eh?(hh(a,Rp,4),a.aa|=kp):a.K&Ol||a.D&(kp|lp)||(yp(a,b,!0),Sp(a.B),hh(a,Rp,120))}function Tp(a,b,c,d){var e=a.C[b][1];w(a,c,null,d,"DIPSW-"+b,e,32768);return e}l.jm=function(a,b){w(this,a,null,b,"CMOS.ADDR",this.V,4096);return this.V};
l.Kn=function(a,b,c){w(this,a,b,c,"CMOS.ADDR",null,4096);this.V=b;this.da=b&Up?ih:Vp};l.km=function(a,b){var c=this.V&Wp,d=c<=Dl?El(this,c):this.A[c];t(this,4352)&&w(this,a,null,b,"CMOS.DATA["+r(c)+"]",d,!0);null!=b&&c==Pm&&(this.A[c]&=Xp,d&Uo&&fh(this,Vo),d&To&&this.A[Rd]&Td&&Tm(this));return d};
l.Ln=function(a,b,c){var d=this.V&Wp;t(this,4352)&&w(this,a,b,c,"CMOS.DATA["+r(d)+"]",null,!0);a=b^this.A[d];if(d<=Dl){if(c=b,d<Nm){var e=!1;this.A[Rd]&Rm||(c=10*(c>>4)+(c&15),e=!0);if(d==Gm||d==Hm)e&&23<c&&(c+=48),this.A[Rd]&Om||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;d==Rd&&a&Td&&b&Td&&Tm(this)};l.Nk=function(a,b,c){w(this,a,b,c,"NMI");this.da=b};l.Vn=function(a,b,c){w(this,a,b,c,"FPU.CLEAR")};l.Wn=function(a,b,c){w(this,a,b,c,"FPU.RESET");this.Tc&&$g(this.Tc)};
l.Ln=function(a,b,c){var d=this.V&Wp;t(this,4352)&&w(this,a,b,c,"CMOS.DATA["+r(d)+"]",null,!0);a=b^this.A[d];if(d<=Dl){if(c=b,d<Nm){var e=!1;this.A[Rd]&Rm||(c=10*(c>>4)+(c&15),e=!0);if(d==pm||d==Hm)e&&23<c&&(c+=48),this.A[Rd]&Om||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;d==Rd&&a&Td&&b&Td&&Tm(this)};l.Nk=function(a,b,c){w(this,a,b,c,"NMI");this.da=b};l.Vn=function(a,b,c){w(this,a,b,c,"FPU.CLEAR")};l.Wn=function(a,b,c){w(this,a,b,c,"FPU.RESET");this.Tc&&$g(this.Tc)};
l.Xm=function(a){if(t(this,16)&&Wk(this.ba,26,a)){var b=this.H.D>>8;Tf(this.H,a,function(a,d){return function(c){d=Ed(a.H)-d;var e,g=a.H.L&255,h=a.H.L>>8,k=a.H.L&255,m=a.H.L>>8;if(2==b||3==b)e=" CH(hour)="+ta(h)+" CL(min)="+r(g)+" DH(sec)="+r(m);else if(4==b||5==b)e=" CX(year)="+ta(a.H.I)+" DH(month)="+r(m)+" DL(day)="+r(k);g=a.ba;h=d;g.message("INT "+r(26)+": C="+(dg(g.H)?1:0)+(e||"")+" (cycles="+h+(c?",level="+(c+1):"")+")")}}(this,Ed(this.H)))}return!0};
function Vm(a,b){if(a.la)try{void 0!==b?a.Ga=b:b=!!(a.Ga&&a.H&&a.H.ea.wb);var c=Math.round(ol/vo(a,wo));if(20>c||2E4<c)b=!1;b?a.I?(a.I.frequency.value=c,t(a,33554432)&&Mb(a,"speaker set to "+c+"hz",!0)):(a.I=a.la.createOscillator(),a.I&&(a.I.type="number"==typeof a.I.type?1:"square",a.I.connect(a.la.destination),a.I.frequency.value=c,"start"in a.I?a.I.start(0):a.I.noteOn(0),t(a,33554432)&&Mb(a,"speaker on at "+c+"hz",!0))):a.I&&("stop"in a.I?a.I.stop(0):a.I.noteOff(0),a.I.disconnect(),delete a.I,
t(a,33554432)&&Mb(a,"speaker off at "+c+"hz",!0))}catch(d){a.Fa("AudioContext exception: "+d.message),a.la=null}else b&&Mb(a,"BEEP",33554432)}var kl=5150,cl=5150.9,eh=5170,ll=5160.101,xl=5180,bl={5150:kl,5160:5160,5170:eh,att6300:ll,mpc1600:5150.101,z150:5160.15,compaq:5150.102,other:cl};bl.deskpro386=xl;
@ -474,7 +474,7 @@ var el="sw1",il="sw2",ml="swdesc",Ul=3,un=1,vn=15,yn=3,zn=4,Cn=3,Ln=12,Pn=0,Mn=4
yc:48,Mg:4},gl=1,nl=3,hl=4,kn=5,ln=6,dn={};dn[kl]=[{},{}];dn[kl][0][gl]={yc:192,Zc:{1:0,2:64,3:128,4:192},Ed:"Number of Floppy Drives"};dn[kl][0][nl]={yc:2,Zc:{0:0,1:2},Ed:"FPU"};dn[kl][0][hl]={yc:48,Zc:{0:0,1:16,2:32,3:48,none:0,tv:16,color:32,cga:32,mda:48,mono:48,ega:0,vga:0},Ed:"Monitor Type"};dn[kl][0][kn]={yc:12,Zc:{16:0,32:4,48:8,64:12},Ed:"Base Memory (16Kb Increments)"};
dn[kl][1][ln]={yc:31,Zc:{0:0,32:1,64:2,96:3,128:4,160:5,192:6,224:7,256:8,288:9,320:10,352:11,384:12,416:13,448:14,480:15,512:16,544:17,576:18},Ed:"Expansion Memory (32Kb Increments)"};dn[5160]=[{},{}];dn[5160][0][gl]=dn[kl][0][gl];dn[5160][0][nl]=dn[kl][0][nl];dn[5160][0][hl]=dn[kl][0][hl];dn[5160][0][kn]={yc:12,Zc:{64:0,128:4,192:8,256:12},Ed:"Base Memory (64Kb Increments)"};dn[5160][1][ln]=dn[kl][1][ln];dn[ll]=[{},{}];dn[ll][0][kn]={yc:143,Zc:{128:1,256:130,512:8,640:141},Ed:"Base Memory (128Kb Increments)"};
dn[ll][0][nl]={yc:16,Zc:{0:0,1:16},Ed:"FPU"};dn[ll][1][2]={yc:1,Zc:{0:0,1:1},Ed:"Floppy Type"};dn[ll][1][gl]=dn[kl][0][gl];dn[ll][1][hl]=dn[kl][0][hl];
var Op=4,Pp=8,Ol=16,Gp=85,Ip=0,Wl=4,Xl=8,Sl=16,Pl=32,Vl=64,Ql=128,Yl=1,Zl=2,Mp=1,Ap=16,zp=192,Cp=32,op=96,Fp=170,Hp=171,Dp=173,Ep=174,Jp=192,Kp=208,qp=209,Lp=224,Bp=240,kp=1,Np=4,np=8,Nl=16,lp=256,lm=0,mm=1,nm=2,om=3,Gm=4,Hm=5,Im=6,Jm=7,Km=8,Lm=9,Nm=10,Rd=11,Pm=12,Dl=13,cm=14,im=16,hm=20,am=21,bm=24,dm=46,Um=47,Mm=50,Wp=63,Cl=64,Up=128,Sm=128,Yo=128,Td=64,Xo=32,$o=16,Rm=4,Om=2,Uo=128,To=64,Wo=32,Zo=16,Xp=15,Qm=128,jn=0,en=1,gn=2,fn=3,hn=4,Vp=128,ih=0,Wm=[0,null,null,0,Array(4),0],Ym=[!0,[0,0],[0,
var Op=4,Pp=8,Ol=16,Gp=85,Ip=0,Wl=4,Xl=8,Sl=16,Pl=32,Vl=64,Ql=128,Yl=1,Zl=2,Mp=1,Ap=16,zp=192,Cp=32,op=96,Fp=170,Hp=171,Dp=173,Ep=174,Jp=192,Kp=208,qp=209,Lp=224,Bp=240,kp=1,Np=4,np=8,Nl=16,lp=256,lm=0,mm=1,nm=2,om=3,pm=4,Hm=5,Im=6,Jm=7,Km=8,Lm=9,Nm=10,Rd=11,Pm=12,Dl=13,cm=14,im=16,hm=20,am=21,bm=24,dm=46,Um=47,Mm=50,Wp=63,Cl=64,Up=128,Sm=128,Yo=128,Td=64,Xo=32,$o=16,Rm=4,Om=2,Uo=128,To=64,Wo=32,Zo=16,Xp=15,Qm=128,jn=0,en=1,gn=2,fn=3,hn=4,Vp=128,ih=0,Wm=[0,null,null,0,Array(4),0],Ym=[!0,[0,0],[0,
0],[0,0],[0,0]],$m=[0,Array(4)],an=[[0,0],[0,0],[0,0],[0,0]],pl={0:function(a,b){return on(this,0,0,a,b)},1:function(a,b){return rn(this,0,0,a,b)},2:function(a,b){return on(this,0,1,a,b)},3:function(a,b){return rn(this,0,1,a,b)},4:function(a,b){return on(this,0,2,a,b)},5:function(a,b){return rn(this,0,2,a,b)},6:function(a,b){return on(this,0,3,a,b)},7:function(a,b){return rn(this,0,3,a,b)},8:function(a,b){return tn(this,0,a,b)},13:function(a,b){return Dn(this,0,a,b)},32:function(a,b){return Sn(this,
Il,b)},33:function(a,b){return io(this,Il,b)},64:function(a,b){return no(this,so,to,a,b)},65:function(a,b){return no(this,so,1,a,b)},66:function(a,b){return no(this,so,wo,a,b)},67:function(a,b){return xo(this,so,a,b)},129:function(a,b){return Fn(this,0,2,a,b)},130:function(a,b){return Fn(this,0,3,a,b)},131:function(a,b){return Fn(this,0,1,a,b)},135:function(a,b){return Fn(this,0,0,a,b)}},rl={96:al.prototype.Gm,97:al.prototype.Hm,98:al.prototype.Im,99:al.prototype.Jm},vl={96:al.prototype.Ul,97:al.prototype.Vl,
100:al.prototype.Wl,112:al.prototype.jm,113:al.prototype.km,128:function(a,b){return Hn(this,7,a,b)},132:function(a,b){return Hn(this,0,a,b)},133:function(a,b){return Hn(this,1,a,b)},134:function(a,b){return Hn(this,2,a,b)},136:function(a,b){return Hn(this,3,a,b)},137:function(a,b){return Fn(this,1,2,a,b)},138:function(a,b){return Fn(this,1,3,a,b)},139:function(a,b){return Fn(this,1,1,a,b)},140:function(a,b){return Hn(this,4,a,b)},141:function(a,b){return Hn(this,5,a,b)},142:function(a,b){return Hn(this,
@ -717,15 +717,15 @@ var Tw="Hard Drive",Ww=["XTC","ATC","COMPAQ"],Uw=[{0:[306,2],1:[375,8],2:[306,6]
815:Hw.prototype.hi},Kw={496:Hw.prototype.An,497:Hw.prototype.Fn,498:Hw.prototype.Dn,499:Hw.prototype.En,500:Hw.prototype.zn,501:Hw.prototype.yn,502:Hw.prototype.Bn,503:Hw.prototype.xn,1014:Hw.prototype.Cn};ab(function(){for(var a=Ab(document,"pcx86","hdc"),b=0;b<a.length;b++){var c=a[b],d=wb(c),d=new Hw(d);zb(d,c)}});function Wx(a){nb.call(this,"Debugger",a);this.L=+a.base||16;this.Ha=null;this.qa=["{","}"];this.Aa=["[","]"];this.Y=this.ha=this.M=0;this.da=!1;this.A=-1;this.C=[];this.ga={}}
ba(Wx,nb);Wx.prototype.gh=function(){return-1};Wx.prototype.hh=function(){};Wx.prototype.Pk=function(a,b){return a.replace("["+b+"]","unimplemented")};
Wx.prototype.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.da?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ca(a.substring(d,f))),d=f+1}}return b};
function Xx(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}
function Yx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=Math.trunc(f/e);break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;
case "&":d=f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;case "><":d=f;if(e=35-(e&255))0>d&&(d+=Math.pow(2,36)),d=0<e?d*Math.pow(2,e):Math.trunc(d/Math.pow(2,-e));break;default:return!1}a.push(Xx(d))}return!0}
function Zx(a,b,c,d,e,f){var g,h,k,m=!1,p=!1,v=[],u=[],E=a.L;for(a.L=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=$x(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Zx(a,b,p,c-1,a.L,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("-"!=k){m=!0;break}p=!0;continue}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Xx(p));if(!k)break;u.length&&ay[k]<ay[u[u.length-1]]&&Yx(v,u,1);u.push(k);a.L="><"==k?10:e;p=!1}Yx(v,
u)&&1==v.length||(m=!0);m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.L=E;return g}function by(a,b,c){var d;a.Ha=null;b&&("{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2><"),b=b.split(/(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Zx(a,b,0,b.length,a.L,c),void 0!==d&&!1===c&&cy(a,null,d));return d}
function Xx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?d=a%b:a>=2*b&&(d=a%(2*b)));a!=d&&(a=d);return a}
function Yx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Xx(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(Xx(e))}return!0}
function Zx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.L;for(a.L=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=$x(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Zx(a,b,p,c-1,a.L,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("~"==k||"^-"==k){p=1;continue}if("-"==k){p=-1;continue}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Xx(p));if(!k)break;u.length&&ay[k]<ay[u[u.length-1]]&&Yx(v,u,1);
u.push(k);a.L="^_"==k?10:e;p=0}Yx(v,u)&&1==v.length||(m=!0);m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.L=E;return g}function by(a,b,c){var d;a.Ha=null;b&&("{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_"),b=b.split(/(\{|}|\|\||&&|\||\^!|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Zx(a,b,0,b.length,a.L,c),void 0!==d&&!1===c&&cy(a,null,d));return d}
function dy(a,b){var c,d=a.qa[0],e=a.qa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=by(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?ey(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.ha}if(null==
e)break;b=b.replace(d[0],e.toString())}return b}function $x(a,b,c,d,e){var f;null!=b?(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(f=oa(e?"-"+b:b,a.L),e=!1)),null!=f?e&&(f=-f):d||a.P("invalid "+(c?c:"value")+": "+b)):d||a.P("missing "+(c||"value"));return f}function cy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.L?c+". "+sa(c,0,!0):q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+ra(c,4,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}
function fy(a,b){if(b)return cy(a,b,a.ga[b]);var c=0;for(b in a.ga)cy(a,b,a.ga[b]),c++;return 0<c}function ey(a,b){var c;c=void 0===c?0:c;switch(a.L){case 2:b=qa(b,0<c?c:0);break;case 8:b=sa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var ay={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10,"{":11,"}":11};
e)break;b=b.replace(d[0],e.toString())}return b}function $x(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(0>e&&(b="-"+b,e=0),f=oa(b,a.L))),null!=f?0>e?f=-f:0<e&&(f|=-1):d||a.P("invalid "+(c?c:"value")+": "+b)):d||a.P("missing "+(c||"value"));return f}
function cy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.L?c+". "+sa(c,0,!0):q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+ra(c,4,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function fy(a,b){if(b)return cy(a,b,a.ga[b]);var c=0;for(b in a.ga)cy(a,b,a.ga[b]),c++;return 0<c}
function ey(a,b){var c;c=void 0===c?0:c;switch(a.L){case 2:b=qa(b,0<c?c:0);break;case 8:b=sa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var ay={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11};
function gy(a){Wx.call(this,a);this.ta=4;this.la=5;this.wa=1048575;this.K=hy(this);this.Ta=hy(this);this.aa=hy(this);this.D=[];this.B=this.Z=this.N=[];iy(this);this.xa=0;jy(this);this.Ba={};ky(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return ly(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return ly(b,a)})}ba(gy,Wx);l=gy.prototype;
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Xb(a,"FDC");this.Xa=Xb(a,"HDC");this.Tc=Xb(a,"FPU");this.G=Xb(a,"Mouse");(a=zd(a,"messages"))&&ky(this,a);this.la=b.I>>2;this.wa=b.N;this.ab=new Vd(this.H,7,"DBG");this.oa=my;80186<=this.H.ca&&(this.oa=my.slice(),this.oa[15]=ny,80286<=this.H.ca&&(this.oa[15]=oy,80386<=this.H.ca&&(this.ta=8)));Al(this,64,function(a){py(d,d.H.sc,a[0])});Al(this,4,function(a){if(a=a[0]){var b=$x(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=qy(d,
b,ry),d.P("dumpSel("+ta(a?a.U:b)+"): %"+q(a?a.Lb:null,d.la)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=sy[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+ta(a.ua&65535)+" off="+ta(a.Ka):"base="+q(a.ua,d.la)+" limit="+ty(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+ta(a.ext&-65296)+
@ -804,23 +804,23 @@ Py(a,g[1],!0);if(v)if(a.aa=v,void 0===g[2])a.P("begin assemble at "+Fy(v)),a.da=
a.P("\tbc [a]\tclear breakpoint at addr [a]"),a.P("\tbl\tlist all breakpoints"),a.P("\tbn [n]\tbreak after [n] instruction(s)");else{var T=K.charAt(1);if("l"==T){var L;L=0+Vz(a,a.B);L+=Vz(a,a.Z);(L+=Vz(a,a.N))||a.P("no breakpoints")}else if("n"==T)a.xa=$x(a,H),a.P("break after "+a.xa+" instruction(s)");else if(void 0===H)a.P("missing breakpoint address");else{var ua={};if("*"!=H&&(ua=Py(a,H,!0,!0),!ua))break a;H=null==ua.Ja?H:ta(ua.Ja);"c"==T?null==ua.Ja?(iy(a),a.P("all breakpoints cleared")):Ey(a,
a.B,ua)||Ey(a,a.Z,ua)||Ey(a,a.N,ua)||a.P("breakpoint missing: "+Fy(ua)):"i"==T?a.P("breakpoint "+(Nc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (input)"):"o"==T?a.P("breakpoint "+(Rc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (output)"):null!=ua.Ja&&(Sy(a,ua,I),"p"==T?a.Gd(a.B,ua):"r"==T?a.Gd(a.Z,ua):"w"==T?a.Gd(a.N,ua):a.P("unknown breakpoint command: "+T))}}}break;case "c":$A(a);break;case "d":a:{var ca=g,xb,za=ca[0],cb=ca[1],Sa=ca[2],rb=ca[3];if("?"==cb){var db="";for(xb in Sb)a.Ba[xb]&&
(db&&(db+=","),db+=xb);db+=",state,symbols";a.P("dump memory commands:");a.P("\tdb [a] [#] dump # bytes at address a");a.P("\tdw [a] [#] dump # words at address a");a.P("\tdd [a] [#] dump # dwords at address a");a.P("\tdh [#] [#] dump # instructions from history");a.P("\tdi [#] dump descriptor info for IDT #");a.P("\tds [#] dump descriptor info for selector #");db.length&&a.P("dump extension commands:\n\t"+db)}else if("state"==cb){var rc=iB(a.pa,!0);rc?"console"==Sa?console.log(rc):
($A(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],tg=df.o;if(void 0!==tg){var ef=df.s;void 0===ef&&(ef=cf.U);var ug=cf.Fd[Ld].l;ug&&(Ld=ug);a.P(uy(tg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var pm=ca[0];if(pm){var Og=a.Sb(Py(a,pm));if(-1===Og)a.P("invalid address: "+pm);else{var nf,
($A(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],tg=df.o;if(void 0!==tg){var ef=df.s;void 0===ef&&(ef=cf.U);var ug=cf.Fd[Ld].l;ug&&(Ld=ug);a.P(uy(tg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var qm=ca[0];if(qm){var Og=a.Sb(Py(a,qm));if(-1===Og)a.P("invalid address: "+qm);else{var nf,
Qa=null;if(80386<=a.H.ca){var of=a.ka,Qa={};Qa.Jk=(Og&-4194304)>>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.ob=of.aa[(Qa.Ti&of.C)>>>of.A];Qa.Aj=Qa.ob.Nd(Qa.Jk);Qa.Kk=(Og&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.pb=of.aa[(Qa.Ui&of.C)>>>of.A];Qa.Bj=Qa.pb.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Og&4095)}if(nf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Og),ve=ve+(" %%"+Uy(nf.Ti,nf.Aj)),ve=
ve+(" %%"+Uy(nf.Ui,nf.Bj,!0)),ve=ve+(" %%"+q(nf.ul));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";dB(a,ca);break a}for(xb in Sb)if(ca[1]==xb){var vt=a.Ba[xb];vt?(ca.shift(),ca.shift(),vt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.lb||"db")}else a.lb=za;if("dh"==za){var wt=cb,xt=Sa,yt="",zt=0,Lc=a.ma,jd=a.O;if(jd.length){var uc=+wt||a.Ya,Pg=+xt||10;isNaN(uc)?uc=Pg:yt="more ";uc>jd.length&&(a.P("note: only "+
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var qm=[];"call"==xt&&(Pg=1E5,qm=["CALL"]);for(void 0!==wt&&a.P(uc+" instructions earlier:");0<Pg&&Lc!=a.ma;){var we=jd[Lc++];if(null==we.U)break;var Qg=hy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),ZB=uc--,At=Xz(a,Qg,"history",ZB);(!qm.length||0<=At.indexOf(qm[0]))&&a.P(At);Qg.Fe&&(Lc+=Qg.Fe,Pg-=Qg.Fe,uc-=Qg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;zt++;Pg--}}zt||(a.P("no "+yt+"history available"),a.Ya=
void 0)}else if("di"==za){ca.shift();var rm=ca[0];if(rm){var Rg=$x(a,rm);if(void 0===Rg||0>Rg||255<Rg)a.P("invalid vector: "+rm);else{var Bt="&",Ct=!!(a.H.qa&1),Dt=!1,Ui=a.H.Pb+(Rg<<(Ct?3:2)),Et=a.H.ja(Ui+0),$B=a.H.ja(Ui+2);Ct&&(Bt="#",a.H.ja(Ui+4)&2048&&(Dt=!0,Et|=a.H.ja(Ui+6)<<16));a.P("dumpIDT("+ta(Rg)+"): "+Bt+q($B,4)+":"+q(Et,Dt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var pf=Py(a,cb);if(pf&&(null!=pf.U||null!=pf.ya)){var Vi=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Vi=$x(a,Sa)>>>0,65536<Vi&&(Vi=65536));for(var Sg="",qf="dd"==za?4:"dw"==za?2:1,Wi=qf*Vi||128,aC=Wi+15>>4||1;aC--&&0<Wi;){var Tg=0,sm=0,Ug,tm="",Ft="",cb=Fy(pf);for(Ug=4==qf?16:a.L;0<Ug&&0<Wi;Ug--){var Xi=a.Ia(pf,1),Tg=Tg|Xi<<(sm++<<3);sm==qf&&(tm+=8==a.L?sa(Tg,3*qf):q(Tg,2*qf),tm+=1==qf?9==Ug?"-":" ":" ",Tg=sm=0);Ft+=32<=Xi&&128>Xi?String.fromCharCode(Xi):".";Wi--}Sg&&(Sg+="\n");Sg+=cb+" "+tm+(Ug?"":" "+Ft)}Sg&&a.P(Sg);a.Ta=pf}}}}}break;case "e":if("else"==g[0])break;var Yi=
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==xt&&(Pg=1E5,rm=["CALL"]);for(void 0!==wt&&a.P(uc+" instructions earlier:");0<Pg&&Lc!=a.ma;){var we=jd[Lc++];if(null==we.U)break;var Qg=hy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),ZB=uc--,At=Xz(a,Qg,"history",ZB);(!rm.length||0<=At.indexOf(rm[0]))&&a.P(At);Qg.Fe&&(Lc+=Qg.Fe,Pg-=Qg.Fe,uc-=Qg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;zt++;Pg--}}zt||(a.P("no "+yt+"history available"),a.Ya=
void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Rg=$x(a,sm);if(void 0===Rg||0>Rg||255<Rg)a.P("invalid vector: "+sm);else{var Bt="&",Ct=!!(a.H.qa&1),Dt=!1,Ui=a.H.Pb+(Rg<<(Ct?3:2)),Et=a.H.ja(Ui+0),$B=a.H.ja(Ui+2);Ct&&(Bt="#",a.H.ja(Ui+4)&2048&&(Dt=!0,Et|=a.H.ja(Ui+6)<<16));a.P("dumpIDT("+ta(Rg)+"): "+Bt+q($B,4)+":"+q(Et,Dt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var pf=Py(a,cb);if(pf&&(null!=pf.U||null!=pf.ya)){var Vi=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Vi=$x(a,Sa)>>>0,65536<Vi&&(Vi=65536));for(var Sg="",qf="dd"==za?4:"dw"==za?2:1,Wi=qf*Vi||128,aC=Wi+15>>4||1;aC--&&0<Wi;){var Tg=0,tm=0,Ug,um="",Ft="",cb=Fy(pf);for(Ug=4==qf?16:a.L;0<Ug&&0<Wi;Ug--){var Xi=a.Ia(pf,1),Tg=Tg|Xi<<(tm++<<3);tm==qf&&(um+=8==a.L?sa(Tg,3*qf):q(Tg,2*qf),um+=1==qf?9==Ug?"-":" ":" ",Tg=tm=0);Ft+=32<=Xi&&128>Xi?String.fromCharCode(Xi):".";Wi--}Sg&&(Sg+="\n");Sg+=cb+" "+um+(Ug?"":" "+Ft)}Sg&&a.P(Sg);a.Ta=pf}}}}}break;case "e":if("else"==g[0])break;var Yi=
1,Gt=255,Ht=a.Ia,It=a.fc;"ew"==g[0]&&(Yi=2,Gt=65535,Ht=a.Yc,It=a.il);var Jt=Yi<<1,Kt=g[1];if(null==Kt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var Zi=Py(a,Kt);if(Zi)for(var $i=2;$i<g.length;$i++){var Vg=by(a,g[$i]);if(void 0===Vg){a.P("unrecognized value: "+g[$i]);break}Vg&~Gt&&a.P("warning: "+q(Vg)+" exceeds "+Yi+"-byte value");var bC=Ht.call(a,Zi);a.P("changing "+Fy(Zi)+" from "+q(bC,Jt,!0)+" to "+q(Vg,Jt,!0));
It.call(a,Zi,Vg,Yi)}}break;case "f":aB(a,g[1]);break;case "g":a:{var Lt=g[1],cC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Lt){var um=Py(a,Lt,!0);if(!um)break a;Sy(a,um,cC);a.Gd(a.B,um,!0)}Nz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var vm;if(a.ea.wb)vm="halting",a.Jb();else{if(Kb(a,!0))break a;vm="already halted"}c||a.P(vm)}break;case "i":if("if"==g[0]){var wm;var Wg=b.substr(2),Wg=Ca(Wg);by(a,Wg)?(c||a.P("true: "+Wg),wm=!0):(c||a.P("false: "+Wg),wm=!1);wm||(d=!1);
break}if("int"==g[0]){var aj;a:switch($x(a,g[1])){case 19:Wk(a,19,a.H.da,!0);a.ha=a.Y;aj=!0;break a;case 33:Wk(a,33,a.H.da,!0);a.ha=a.Y;aj=!0;break a;default:aj=!1}aj||(d=!1);break}var xm=g[1];if(xm&&"?"!=xm){var ym=$x(a,xm);if(void 0!==ym){var dC=Pc(a.ka,ym,1);a.P(ta(ym)+": "+r(dC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var eC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
a.P("\tks\tshow symbol information");else{var zm=0,Mt=a.H.Z.U,Xg=hy(a),Sd=hy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Fy(Sd));10>zm;){for(var kd=null,fC=256;Sd.Ja>>>0<a.H.cg>>>0;){Xg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!fC--)break;Xg.U=Mt;if(kd=gB(a,Xg))break;Xg.U=a.jb(Sd);if(kd=gB(a,Xg,!0)){Mt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Nt=null;if("ks"==eC){var Ot=kd.match(/[0-9A-F]+$/);Ot&&(Nt=cB(a,Ot[0]))}kd=Ba(kd,50)+" ;"+(Nt||"stack="+Fy(Sd));a.P(kd);zm++}zm||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){cB(a,g[1],!0);break}dB(a,g);break;case "m":if("mouse"==g[0]){var Am=g[1],bj=g[2];if(a.G){var Pt=1;"-"==bj.charAt(0)&&(Pt=-1,bj=bj.substr(1));var xe=$x(a,bj,Am);if(void 0!==xe)switch(xe=xe*Pt|0,Am){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Am)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
It.call(a,Zi,Vg,Yi)}}break;case "f":aB(a,g[1]);break;case "g":a:{var Lt=g[1],cC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Lt){var vm=Py(a,Lt,!0);if(!vm)break a;Sy(a,vm,cC);a.Gd(a.B,vm,!0)}Nz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wm;if(a.ea.wb)wm="halting",a.Jb();else{if(Kb(a,!0))break a;wm="already halted"}c||a.P(wm)}break;case "i":if("if"==g[0]){var xm;var Wg=b.substr(2),Wg=Ca(Wg);by(a,Wg)?(c||a.P("true: "+Wg),xm=!0):(c||a.P("false: "+Wg),xm=!1);xm||(d=!1);
break}if("int"==g[0]){var aj;a:switch($x(a,g[1])){case 19:Wk(a,19,a.H.da,!0);a.ha=a.Y;aj=!0;break a;case 33:Wk(a,33,a.H.da,!0);a.ha=a.Y;aj=!0;break a;default:aj=!1}aj||(d=!1);break}var ym=g[1];if(ym&&"?"!=ym){var zm=$x(a,ym);if(void 0!==zm){var dC=Pc(a.ka,zm,1);a.P(ta(zm)+": "+r(dC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var eC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
a.P("\tks\tshow symbol information");else{var Am=0,Mt=a.H.Z.U,Xg=hy(a),Sd=hy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Fy(Sd));10>Am;){for(var kd=null,fC=256;Sd.Ja>>>0<a.H.cg>>>0;){Xg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!fC--)break;Xg.U=Mt;if(kd=gB(a,Xg))break;Xg.U=a.jb(Sd);if(kd=gB(a,Xg,!0)){Mt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Nt=null;if("ks"==eC){var Ot=kd.match(/[0-9A-F]+$/);Ot&&(Nt=cB(a,Ot[0]))}kd=Ba(kd,50)+" ;"+(Nt||"stack="+Fy(Sd));a.P(kd);Am++}Am||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){cB(a,g[1],!0);break}dB(a,g);break;case "m":if("mouse"==g[0]){var Bm=g[1],bj=g[2];if(a.G){var Pt=1;"-"==bj.charAt(0)&&(Pt=-1,bj=bj.substr(1));var xe=$x(a,bj,Bm);if(void 0!==xe)switch(xe=xe*Pt|0,Bm){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Bm)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
fb)ye=1610481663,fb=null;else if("on"==fb)md=!0,fb=null;else if("off"==fb)md=!1,fb=null;else{"keys"==fb&&(fb="key");"kbd"==fb&&(fb="keyboard");for(ld in Sb)if(fb==ld){ye=Sb[ld];md=!!(a.ic&ye);break}if(!ye){a.P("unknown message category: "+fb);break a}}ye&&("on"==g[2]?(a.ic|=ye,md=!0):"off"==g[2]&&(a.ic&=~ye,md=!1))}var gC=0,Yg="";for(ld in Sb)if(!fb||fb==ld){var hC=!!(a.ic&Sb[ld]);if(null===md||md==hC)Yg&&(Yg+=","),++gC%10||(Yg+="\n\t"),"key"==ld&&(ld="keys"),Yg+=ld}void 0===fb&&a.P("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+(Yg||"none"));jy(a)}break;case "o":var Bm=g[1],iC=g[2];if(Bm&&"?"!=Bm){var Cm=$x(a,Bm,"port #"),Dm=$x(a,iC);void 0!==Cm&&void 0!==Dm&&(Tc(a.ka,Cm,1,Dm),a.P(ta(Cm)+": "+r(Dm)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){fB(a,b.substr(5));break}var Qt="pr"==g[0]?1:0,rf=1+Qt;if(a.I)a.P("step in progress");
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+(Yg||"none"));jy(a)}break;case "o":var Cm=g[1],iC=g[2];if(Cm&&"?"!=Cm){var Dm=$x(a,Cm,"port #"),Em=$x(a,iC);void 0!==Dm&&void 0!==Em&&(Tc(a.ka,Dm,1,Em),a.P(ta(Dm)+": "+r(Em)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){fB(a,b.substr(5));break}var Qt="pr"==g[0]?1:0,rf=1+Qt;if(a.I)a.P("step in progress");
else{var cj,Rt=!1,Hb=hy(a,A(a.H),a.H.Z.U);do switch(cj=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Ky(a,Hb,1);cj=!0;break;case 204:case 206:a.I=rf;Ky(a,Hb,1);break;case 205:case 224:case 225:case 226:a.I=rf;Ky(a,Hb,Hb.Hb?4:2);break;case 232:a.I=rf;Ky(a,Hb,Hb.Hb?5:3);break;case 154:a.I=rf;Ky(a,Hb,Hb.Hb?7:5);break;case 255:var St=a.jb(Hb)&14591;if(4351==St||6399==St)a.I=rf,Xz(a,Hb);break;case 243:case 242:Ky(a,Hb,1);Rt=cj=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Rt&&
(a.I=rf,Ky(a,Hb,1))}while(cj);a.I?(a.Gd(a.B,Hb,!0),Nz(a)||(a.pa&&a.pa.ld(),a.I=0)):hB(a,Qt?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}Pz(a,g);break;case "t":hB(a,g[0],g[1]);break;case "u":Qz(a,g[1],g[2],8);break;case "v":if("var"==g[0]){bB(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.34.2 ("+a.H.ca+",RELEASE,NOPREFETCH"+(Ob?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Na());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Zg;void 0!==g[3]&&(Zg=+g[3]);
switch(g[2]){case "int":a.H.T.Se=Zg;break;case "start":a.H.T.wf=Zg;break;case "stop":a.H.T.Ue=Zg;break;default:a.P("unknown cs option");break a}void 0!==Zg&&Bd(a.H);a.P("checksums "+(a.H.ea.He?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Fd(a.H,+g[2])||a.P("warning: using 1x multiplier, previous target not reached"));a.P("target speed: "+(a.H.T.oe.toFixed(2)+"Mhz")+" ("+a.H.T.Kd+"x)");break;default:a.P("unknown option: "+g[1])}else a.P("execution options:"),a.P("\tcs int #\tset checksum cycle interval to #"),
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){fB(a,b.substr(1));break}var Em="commands:",Fm;for(Fm in jB)Em+="\n"+Ba(Fm,7)+jB[Fm];Jg(a)||(Em+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Em);break;default:a.P("unknown command: "+b),d=!1}}}catch(Ut){a.P("debugger error: "+(Ut.stack||Ut.message)),d=!1}return d}
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){fB(a,b.substr(1));break}var Fm="commands:",Gm;for(Gm in jB)Fm+="\n"+Ba(Gm,7)+jB[Gm];Jg(a)||(Fm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Fm);break;default:a.P("unknown command: "+b),d=!1}}}catch(Ut){a.P("debugger error: "+(Ut.stack||Ut.message)),d=!1}return d}
function ly(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Wz(a,b[+d]))return!1;return!0}
var Kz={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Jz=[26,28,40,42,109],jB={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Qy=0,Iy=1,ry=2,Ty=3,Ry=4,Jy=5,eA=18,fA=28,aA=36,jA=80,gA=104,hA=107,Zz=176,Yz="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),

View file

@ -1050,7 +1050,7 @@ class DebuggerPDP10 extends Debugger {
if (this.sInitCommands) {
var sCmds = this.sInitCommands;
this.sInitCommands = null;
this.doCommands(sCmds);
this.doCommands(sCmds, true);
}
}

View file

@ -57,17 +57,21 @@ var Mac;
* name:(string),
* value:(number),
* nLine:(number),
* fLabel:(boolean),
* fGlobal:(boolean),
* fPrivate:(boolean)
* nType:(number)
* }}
*/
var Sym;
/**
*
* Elements of aFixups.
*
* NOTE: The nLine property is not required; it's added for DEBUG support.
*
* @typedef {{
* nLocation:(number),
* sValue:(string)
* sValue:(string),
* nLine:(number)
* }}
*/
var Fixup;
@ -79,9 +83,9 @@ var Fixup;
* @property {string} sOptions
* @property {DebuggerPDP10} dbg
* @property {function(...)} done
* @property {string} sText
* @property {number} iURL
* @property {Array.<string>} asURLs
* @property {Array.<string>} asLines
*/
class Macro10 {
/**
@ -138,8 +142,8 @@ class Macro10 {
* the LITERAL blocks in tblMacros and process the associated statement(s) at that time.
*
* Macros have the name that was assigned to them, REPEAT and conditional blocks have generated names
* that match the pseudo-op (eg, "_REPEAT", "_IFE"), and LITERAL blocks have generated location-based
* names. All generated names use a leading underscore ('_') so that they don't conflict with
* that match the pseudo-op (eg, "?REPEAT", "?IFE"), and LITERAL blocks have generated location-based
* names. All generated names use a leading question mark ('?') so that they don't conflict with
* normal MACRO-10 labels.
*/
@ -194,7 +198,11 @@ class Macro10 {
*/
this.sASCII = "";
this.sText = "";
/**
* @type {Array.<string>}
*/
this.asLines = [];
this.iURL = 0;
this.asURLs = sURL.split(';');
@ -209,7 +217,7 @@ class Macro10 {
loadNextResource()
{
if (this.iURL == this.asURLs.length) {
this.done(this.parseFile());
this.done(this.parseResources());
return;
}
@ -243,8 +251,9 @@ class Macro10 {
match = sText.match(/&[a-z]+;/i);
if (match) macro10.warning("unrecognized HTML entity: " + match[0]);
}
if (macro10.sText) macro10.sText += '\n';
macro10.sText += sText;
macro10.asLines = macro10.asLines.concat(sText.split(/(\r?\n)/));
setTimeout(function() {
macro10.loadNextResource();
}, 0);
@ -265,14 +274,14 @@ class Macro10 {
}
/**
* parseFile()
* parseResources()
*
* Begin the assembly process.
*
* @this {Macro10}
* @return {number}
*/
parseFile()
parseResources()
{
var macro10 = this;
@ -280,17 +289,22 @@ class Macro10 {
* If the "preprocess" option is set, then just return the plain text we retrieved.
*/
if (this.sOptions.indexOf('p') >= 0) {
this.println(this.sText);
this.println(this.asLines.join());
return 0;
}
var a = this.dbg.resetVariables();
try {
var i;
var asLines = this.sText.split(/\r?\n/);
for (i = 0; i < asLines.length; i++) {
for (i = 0; i < this.asLines.length; i += 2) {
this.nLine++;
if (!this.parseLine(asLines[i] + '\r\n')) break;
/*
* Since, at this early stage, I'm not sure whether all the resources I'm interested in
* assembling have had their original CR/LF line endings preserved (eg, some files may have
* been converted to LF-only line endings), I'm going to skip over whatever line endings
* are in the array and insert my own uniform CR/LF sequences.
*/
if (!this.parseLine(this.asLines[i] + '\r\n')) break;
}
if (this.nMacroDef) {
@ -338,9 +352,10 @@ class Macro10 {
*/
parseLine(sLine)
{
var i;
if (this.nMacroDef) {
if (this.nMacroDef == 1) {
var i = sLine.indexOf(this.chMacroOpen);
i = sLine.indexOf(this.chMacroOpen);
if (i >= 0) {
this.nMacroDef++;
sLine = sLine.substr(i+1);
@ -358,41 +373,42 @@ class Macro10 {
sLine = this.addASCII(sLine);
}
var reLine = /\s*([A-Z$%._][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i;
var match = sLine.match(reLine);
if (!match || match[4] && match[4].slice(0, 1) != ';') {
var reLine = /\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i;
var matchLine = sLine.match(reLine);
if (!matchLine || matchLine[4] && matchLine[4].slice(0, 1) != ';') {
this.error("failed to parse line: " + sLine);
return false;
}
var sLabel = match[1];
var sOperator = match[2].toUpperCase();
var sOperands = match[3].trim();
var sComment = match[4];
var sRemainder = match[3] + match[4];
var sLabel = matchLine[1];
var sOperator = matchLine[2].toUpperCase();
var sOperands = matchLine[3].trim();
var sComment = matchLine[4];
var sRemainder = matchLine[3] + matchLine[4];
if (sLabel) {
var chSep = sLabel.slice(-1);
sLabel = sLabel.slice(0, -1);
if (chSep == ':') {
this.addLabel(sLabel);
} else {
sOperands = sOperator + sOperands;
sOperator = chSep;
this.addSymbol(sLabel, this.nLocation, Macro10.SYMTYPE.LABEL);
}
var matchOp;
if (sOperator && (matchOp = sOperands.match(/^([=:]+)(.*)/))) {
var nType = 0;
sLabel = sOperator;
sOperator = matchOp[1];
sOperands = matchOp[2];
if (sOperator == '==') {
nType |= Macro10.SYMTYPE.PRIVATE;
}
else if (sOperator == '=:') {
nType |= Macro10.SYMTYPE.INTERNAL;
}
this.addSymbol(sLabel, sOperands, nType);
sOperator = sOperands = "";
}
if (!sOperator && !sOperands) return true;
/*
* My initial read of the MACRO-10 specification suggested that lines may begin with EITHER
* "symbol:" (for a label) or "symbol=" (for an assignment), but apparently they can have BOTH.
*/
if (sOperands[0] == '=') {
sLabel = sOperator;
sOperands = sOperands.substr(1);
sOperator = '=';
}
this.sOperator = sOperator;
/*
@ -416,10 +432,6 @@ class Macro10 {
if (!this.parseMacro(sOperator, sOperands)) {
switch (sOperator) {
case "=":
this.addAssign(sLabel, sOperands);
break;
case Macro10.PSEUDO_OP.ASCII:
case Macro10.PSEUDO_OP.ASCIZ:
case Macro10.PSEUDO_OP.SIXBIT:
@ -432,6 +444,7 @@ class Macro10 {
case Macro10.PSEUDO_OP.DEFINE:
case Macro10.PSEUDO_OP.IFE:
case Macro10.PSEUDO_OP.IRP:
case Macro10.PSEUDO_OP.REPEAT:
this.addMacro(sOperator, sOperands);
break;
@ -462,20 +475,12 @@ class Macro10 {
if (!macro) return false;
if (sOperands != null) {
/*
* Process this macro call; start by extracting macro argument values from sOperands.
*/
var sDelim = ',';
if (sOperands[0] == '(') {
sDelim += ')';
sOperands = sOperands.substr(1);
}
var aValues = this.getValues(sOperands, sDelim);
var aValues = this.getValues(sOperands);
this.parseText(macro.sText, macro.aParms, aValues);
return true;
}
if (name[0] != '_') return false;
if (name[0] != '?') return false;
switch(name.substr(1)) {
case Macro10.PSEUDO_OP.IFE:
@ -531,7 +536,13 @@ class Macro10 {
if (iMatch < 0) break;
iSearch = iMatch + 1;
var iMatchEnd = iMatch + sParm.length;
if ((!iMatch || !this.isSymbolChar(sLine[iMatch - 1])) && (iMatchEnd >= sLine.length || !this.isSymbolChar(sLine[iMatchEnd]))) {
var chPre = '', chPost = '';
if ((!iMatch || !this.isSymbolChar(chPre = sLine[iMatch - 1])) && (iMatchEnd >= sLine.length || !this.isSymbolChar(chPost = sLine[iMatchEnd]))) {
/*
* If the "concatenation character" (') appears before (or after) the symbol being replaced, remove it.
*/
if (chPre == "'") iMatch--;
if (chPost == "'") iMatchEnd++;
sLine = sLine.substr(0, iMatch) + sReplace + sLine.substr(iMatchEnd);
iSearch = iMatch + sReplace.length;
}
@ -575,11 +586,18 @@ class Macro10 {
getExpression(sOperands, sDelim = ",")
{
var i = 0;
var fQuotes = false;
var sOperand = null;
var cNesting = 0;
while (i < sOperands.length) {
var ch = sOperands[i];
var ch = sOperands[i++];
if (ch == '"') {
fQuotes = !fQuotes;
continue;
}
if (fQuotes) continue;
if (sDelim.indexOf(ch) >= 0) {
i--;
break;
}
if (ch == '<') {
@ -590,7 +608,6 @@ class Macro10 {
break;
}
}
i++;
}
if (!cNesting) {
sOperand = sOperands.substr(0, i);
@ -686,6 +703,30 @@ class Macro10 {
return sLiteral;
}
/**
* getDefaults(aParms)
*
* Check the given array of macro parameters for default values, remove them, and return them in a parallel array.
*
* @this {Macro10}
* @param {Array.<string>} aParms
* @return {Array.<string>}
*/
getDefaults(aParms)
{
var aDefaults = [];
for (var i = 0; i < aParms.length; i++) {
var j = aParms[i].indexOf('<');
if (j >= 0) {
var k = aParms[i].lastIndexOf('>');
if (k < 0) k = aParms[i].length;
aDefaults[i] = aParms[i].substr(j, k - j);
aParms[i] = aParms[i].substr(0, j);
}
}
return aDefaults;
}
/**
* getReserved(sOperands)
*
@ -701,7 +742,7 @@ class Macro10 {
if (match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)) {
sReserved = match[0];
var sLabel = match[1];
var name = '_' + sLabel;
var name = '?' + sLabel;
if (this.tblMacros[name] !== undefined) {
this.error("reserved symbol redefined: " + sReserved);
}
@ -773,34 +814,6 @@ class Macro10 {
return sRemain;
}
/**
* addAssign(sName, sOperand)
*
* @this {Macro10}
* @param {string} sName
* @param {string} sOperand
*/
addAssign(sName, sOperand)
{
var value = this.parseExpression(sOperand);
if (value === undefined) {
this.error("parseExpression(" + sOperand + ")");
return;
}
this.addSymbol(sName, value);
}
/**
* addLabel(sLabel)
*
* @this {Macro10}
* @param {string} sLabel
*/
addLabel(sLabel)
{
this.addSymbol(sLabel, this.nLocation, true);
}
/**
* addMacro(sOperator, sOperands)
*
@ -808,7 +821,7 @@ class Macro10 {
* REPEAT block instead.
*
* REPEAT blocks piggy-back on this code because they're essentially anonymous immediately-invoked macros;
* we use an illegal MACRO-10 symbol ('_REPEAT') to name the anonymous macro while it's being defined, and the
* we use an illegal MACRO-10 symbol ('?REPEAT') to name the anonymous macro while it's being defined, and the
* macro's nOperand field will contain the repeat count.
*
* The piggy-backing continues with other pseudo-ops like IFE, which again contain an anonymous block of text
@ -833,24 +846,19 @@ class Macro10 {
/*
* This is a DEFINE (macro) block.
*/
match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);
match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(?:\(([^)]*)\)|)\s*(<|)(.*)/i);
if (!match) {
this.error("unrecognized " + sOperator + " definition: " + sOperands);
this.error("unrecognized " + sOperator + ": " + sOperands);
return "";
}
name = match[1];
/*
* TODO: This may not actually be an error, but I'd like to take a look if/when it happens.
* If this macro has defined parameters, parse them (and any defaults) now.
*/
if (this.tblMacros[name] !== undefined) {
this.error("macro redefined: " + name);
if (match[2]) {
aParms = this.getValues(match[2]);
aDefaults = this.getDefaults(aParms);
}
/*
* TODO: Tighten up this parsing at some point. All this is doing is extracting entire symbols
* from within the parentheses, if any; it's NOT ensuring that those symbols are comma-separated
* with no other intervening characters.
*/
aParms = match[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);
nOperand = Macro10.MACRO_OP.DEFINE;
iMatch = 3;
}
@ -860,7 +868,7 @@ class Macro10 {
*/
this.chMacroOpen = '[';
this.chMacroClose = ']';
name = '_' + Str.toDec(this.nLocation, 5);
name = '?' + Str.toDec(this.nLocation, 5);
if (this.tblMacros[name] !== undefined) {
this.error("literal symbol redefined: " + name);
}
@ -881,7 +889,7 @@ class Macro10 {
sOperands = sOperands.substr(sOperand.length + 1);
sOperand = sOperand.trim();
match = sOperands.match(/\s*(<|)(.*)/i);
name = '_' + sOperator;
name = '?' + sOperator;
/*
* The expression is either a repeat count or a condition. Either way, we must be able to
* resolve it now, so we don't set fPass1 (but that doesn't mean it's the second pass, either).
@ -951,23 +959,29 @@ class Macro10 {
}
/**
* addSymbol(name, value, fLabel, fGlobal, fPrivate)
* addSymbol(name, value, nType)
*
* @this {Macro10}
* @param {string} name
* @param {number} value
* @param {boolean} [fLabel] (default is false, meaning the symbol is an assignment)
* @param {boolean} [fGlobal] (default is false, meaning the symbol is local to the current file)
* @param {boolean} [fPrivate] (default is false, meaning the symbol has visibility to the caller)
* @param {number|string} value
* @param {number} [nType]
*/
addSymbol(name, value, fLabel = false, fGlobal = false, fPrivate = false)
addSymbol(name, value, nType = 0)
{
name = name.toUpperCase().substr(0, 6);
if (fLabel && this.tblSymbols[name] !== undefined) {
if ((nType & Macro10.SYMTYPE.LABEL) && this.tblSymbols[name] !== undefined) {
this.error("label " + name + " redefined");
return;
}
this.tblSymbols[name] = {name, value, nLine: this.nLine, fLabel, fGlobal, fPrivate};
if (typeof value == 'string') {
var v = this.parseExpression(value);
if (v === undefined) {
this.error("parseExpression(" + value + ")");
return;
}
value = v;
}
this.tblSymbols[name] = {name, value, nLine: this.nLine, nType};
this.dbg.setVariable(name, value);
}
@ -1070,7 +1084,7 @@ class Macro10 {
genWord(value, sFixup)
{
this.aWords[this.nLocation] = this.truncate(value);
if (sFixup != null) this.aFixups.push({nLocation: this.nLocation, sValue: sFixup});
if (sFixup != null) this.aFixups.push({nLocation: this.nLocation, sValue: sFixup, nLine: this.nLine});
this.nLocation++;
}
@ -1107,17 +1121,24 @@ class Macro10 {
}
}
Macro10.SYMTYPE = {
LABEL: 0x01,
PRIVATE: 0x02,
INTERNAL: 0x04
};
Macro10.PSEUDO_OP = {
ASCII: "ASCII",
ASCIZ: "ASCIZ",
DEFINE: "DEFINE",
IFE: "IFE",
LITERAL:"LITERAL",
PAGE: "PAGE",
REPEAT: "REPEAT",
SIXBIT: "SIXBIT",
SUBTTL: "SUBTTL",
XWD: "XWD"
ASCII: "ASCII",
ASCIZ: "ASCIZ",
DEFINE: "DEFINE",
IFE: "IFE",
IRP: "IRP",
LITERAL: "LITERAL",
PAGE: "PAGE",
REPEAT: "REPEAT",
SIXBIT: "SIXBIT",
SUBTTL: "SUBTTL",
XWD: "XWD"
};
/*

View file

@ -566,7 +566,7 @@ class Debugger extends Component
case '|':
valNew = this.evalIOR(val1, val2);
break;
case '^^': // since MACRO-10 uses '^' for base overrides, you must now use '^^' for bitwise exclusive-or (XOR)
case '^!': // since MACRO-10 uses '^' for base overrides, '^!' is used for bitwise exclusive-or (XOR)
valNew = this.evalXOR(val1, val2);
break;
case '&&':
@ -575,16 +575,21 @@ class Debugger extends Component
case '||':
valNew = (val1 || val2? 1 : 0);
break;
case '><':
case '_':
case '^_':
valNew = val1;
val2 = 35 - (val2 & 0xff);
/*
* While we always try to avoid assuming any particular number of bits of precision, the 'B' shift
* operator (which we've converted to '^_') is unique to the MACRO-10 environment, which imposes the
* following restrictions on the shift count.
*/
if (chOp == '^_') val2 = 35 - (val2 & 0xff);
if (val2) {
/*
* Since binary shifting is a logical operation, and since shifting by division only works properly
* with positive numbers, we must convert a negative value to a positive value, by computing the two's
* complement.
* Since binary shifting is a logical (not arithmetic) operation, and since shifting by division only
* works properly with positive numbers, we call truncate() to produce an unsigned value.
*/
if (valNew < 0) valNew += Math.pow(2, 36);
valNew = this.truncate(valNew, 0, true);
if (val2 > 0) {
valNew *= Math.pow(2, val2);
} else {
@ -610,7 +615,7 @@ class Debugger extends Component
*
* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
* - - - - - - - - - - -- -- -- -- --
* 2 * _ { 3 + _ { 4 / 2 } _ } _
* 2 * { 3 + { 4 / 2 } }
*
* This function takes care of recursively processing sub-expressions, by processing subsets of the array,
* as well as handling certain base overrides (eg, temporarily switching to base-10 for binary shift suffixes).
@ -627,7 +632,7 @@ class Debugger extends Component
var value;
var sValue, sOp;
var fError = false;
var fNegate = false;
var iNegate = 0;
var aVals = [], aOps = [];
var nBasePrev = this.nBase;
@ -656,16 +661,20 @@ class Debugger extends Component
sOp = (iValue < iLimit? asValues[iValue++] : "");
}
else {
if (sOp != '-') {
fError = true;
break;
if (sOp == '~' || sOp == '^-') {
iNegate = 1;
continue;
}
fNegate = true;
continue;
if (sOp == '-') {
iNegate = -1;
continue;
}
fError = true;
break;
}
}
else {
v = this.parseValue(sValue, null, fQuiet, fNegate);
v = this.parseValue(sValue, null, fQuiet, iNegate);
}
if (v === undefined) {
@ -693,8 +702,8 @@ class Debugger extends Component
* The MACRO-10 binary shifting operator assumes a base-10 shift count, regardless of the current
* base, so we must override the current base to ensure the count is parsed correctly.
*/
this.nBase = (sOp == '><')? 10 : nBase;
fNegate = false;
this.nBase = (sOp == '^_')? 10 : nBase;
iNegate = 0;
}
if (!this.evalOps(aVals, aOps) || aVals.length != 1) {
@ -729,7 +738,7 @@ class Debugger extends Component
*
* We pop 1 "binop" from aOps and 2 values from aVals whenever a "binop" of lower priority than its
* predecessor is encountered, evaluate, and push the result back onto aVals. Only selected unary
* operators are supported (eg, minus), and ternary operators like '?:' are not supported at all.
* operators are supported (eg, minus and "not"); ternary operators like '?:' are not supported at all.
*
* @this {Debugger}
* @param {string|undefined} sExp
@ -768,13 +777,14 @@ class Debugger extends Component
* what IS important is listing operators than contain shorter operators first. For example, bitwise
* shift operators must be listed BEFORE the logical less-than or greater-than operators.
*
* Also, to better accommodate MACRO-10 syntax, I've replaced the single '^' for XOR with '^^', since
* MACRO-10 uses prefixes like "^D", "^O" and "^B" with numeric constants to indicate a base override, and
* I've added '!' as an alias for '|' to perform bitwise inclusive-or.
* Also, to better accommodate MACRO-10 syntax, I've replaced the single '^' for XOR with '^!' (since
* MACRO-10 uses prefixes like "^D", "^O" and "^B" with numeric constants to indicate a base override).
* Similarly, I've added '!' as an alias for '|' (bitwise inclusive-or), '^-' as an alias for '~' (unary
* complement "not" operator), and '_' as a shift operator.
*
* The MACRO-10 binary shifting suffix ('B') is a bit more problematic, since a capital B can also appear
* inside symbols. So I pre-scan for that operator and replace non-symbolic occurrences with an internal
* operator ('><').
* inside symbols. So I pre-scan for that suffix and replace all non-symbolic occurrences with an internal
* shift operator ('^_').
*
* Note that Str.parseInt(), which parseValue() relies on, supports both the MACRO-10 base prefix overrides
* and the binary shifting suffix. But since the B suffix can also be a bracketed expression, we have to
@ -786,8 +796,8 @@ class Debugger extends Component
*
* WARNING: Whenever you make changes to this RegExp, make sure you update aBinOpPrecedence as needed, too.
*/
var regExp = /(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/;
sExp = sExp.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/, "$1$2><");
var regExp = /(\{|}|\|\||&&|\||\^!|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/;
sExp = sExp.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/, "$1$2^_");
var asValues = sExp.split(regExp);
value = this.parseArray(asValues, 0, asValues.length, this.nBase, fQuiet);
if (value !== undefined && fQuiet === false) {
@ -874,16 +884,16 @@ class Debugger extends Component
}
/**
* parseValue(sValue, sName, fQuiet, fNegate)
* parseValue(sValue, sName, fQuiet, iNegate)
*
* @this {Debugger}
* @param {string|undefined} sValue
* @param {string|null} [sName] is the name of the value, if any
* @param {boolean} [fQuiet]
* @param {boolean} [fNegate]
* @param {number} [iNegate] (-1 to negate , 1 to complement)
* @return {number|undefined} numeric value, or undefined if sValue is either undefined or invalid
*/
parseValue(sValue, sName, fQuiet, fNegate)
parseValue(sValue, sName, fQuiet, iNegate = 0)
{
var value;
if (sValue != null) {
@ -893,12 +903,19 @@ class Debugger extends Component
} else {
value = this.getVariable(sValue);
if (value == null) {
value = Str.parseInt(fNegate? ('-' + sValue) : sValue, this.nBase);
fNegate = false;
if (iNegate < 0) {
sValue = '-' + sValue;
iNegate = 0;
}
value = Str.parseInt(sValue, this.nBase);
}
}
if (value != null) {
if (fNegate) value = -value;
if (iNegate < 0) {
value = -value;
} else if (iNegate > 0) {
value = this.evalXOR(value, -1);
}
} else {
if (!fQuiet) {
this.println("invalid " + (sName? sName : "value") + ": " + sValue);
@ -1056,12 +1073,17 @@ class Debugger extends Component
if (DEBUGGER) {
/*
* Missing from this table are the (limited) set of unary operators we support (negate and complement),
* since this is only a BINARY operator precedence, not a general-purpose precedence table. Assume that
* all unary operators take precedence over all binary operators.
*/
Debugger.aBinOpPrecedence = {
'||': 0, // logical OR
'&&': 1, // logical AND
'!': 2, // bitwise OR
'|': 2, // bitwise OR
'^^': 3, // bitwise XOR
'^!': 3, // bitwise XOR (added by MACRO-10 sometime between the 1972 and 1978 versions)
'&': 4, // bitwise AND
'!=': 5, // inequality
'==': 5, // equality
@ -1077,7 +1099,8 @@ if (DEBUGGER) {
'%': 9, // remainder
'/': 9, // division
'*': 9, // multiplication
'><': 10, // internal binary shift operator (MACRO-10-style; converted from a 'B' suffix)
'_': 10, // MACRO-10 shift operator
'^_': 10, // MACRO-10 internal shift operator (converted from 'B' suffix form that MACRO-10 uses)
'{': 11, // open sub-expression (achGroup[0] default)
'}': 11 // close sub-expression (achGroup[1] default)
};

View file

@ -147,8 +147,8 @@ function je(a){if(!Ab(a))if(!a.j)Bb(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);i
f.g;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=f.w}}delete a.b}}Bb(a)}}Wa(function(){for(var a=sb(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=qb(c),d=new he(d);rb(d,c)}});
function ke(a){t.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ja=a.exec;this.j=!1;this.b=a.file;this.B=sa(this.b);if(this.b){a=this.b;var b=ta(this.B);"json"!=b&&"hex"!=b&&(a=wa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(ib(c.eb,a,b),(a=Ia(a,b))?(c.g=a.la,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ja&&(c.Ja=a.Ja)):c.b=null,le(c))})}}aa(ke,t);
ke.prototype.Ga=function(a,b,c,d){this.H=b;this.u=c;this.K=d;le(this)};ke.prototype.wa=function(){return!0};ke.prototype.va=function(){return!0};
function le(a){!a.j&&a.A&&Rb(a.H,a.w,a.A,1)&&(a.j=!0);if(!Ab(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Zb(a.H,b+c,a.g[c]);if(null!==a.Ja){if(a.Ja==me){for(c=0;c<ne.length;c++)Zb(a.H,ne[c],118);rd(a.u,function(a){return function(b){if(0<=ne.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==oe)switch(c=!0,d.A){case pe:Le(a,String.fromCharCode(d.C));break;case Me:for(var k=yd(d),q="",u=255;u--;){var v=E(a.u,k++);if(36==v)break;
q+=String.fromCharCode(v)}Le(a,q);break;default:c=!1}c?Yd.call(d):e&&(a.i("\nCP/M vector "+p(b)),A(d,b),e.ea());b=!0}else b=!1;return b}}(a))}td(a.u,a.Ja)}delete a.g}Bb(a)}}ke.prototype.reset=function(){};function Le(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var oe=5,pe=2,Me=9,me=256,ne=[0,oe];Wa(function(){for(var a=sb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=qb(c),d=new ke(d);rb(d,c)}});
function le(a){!a.j&&a.A&&Rb(a.H,a.w,a.A,1)&&(a.j=!0);if(!Ab(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Zb(a.H,b+c,a.g[c]);if(null!==a.Ja){if(a.Ja==me){for(c=0;c<ne.length;c++)Zb(a.H,ne[c],118);rd(a.u,function(a){return function(b){if(0<=ne.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==oe)switch(c=!0,d.A){case pe:qe(a,String.fromCharCode(d.C));break;case Me:for(var k=yd(d),q="",u=255;u--;){var v=E(a.u,k++);if(36==v)break;
q+=String.fromCharCode(v)}qe(a,q);break;default:c=!1}c?Yd.call(d):e&&(a.i("\nCP/M vector "+p(b)),A(d,b),e.ea());b=!0}else b=!1;return b}}(a))}td(a.u,a.Ja)}delete a.g}Bb(a)}}ke.prototype.reset=function(){};function qe(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var oe=5,pe=2,Me=9,me=256,ne=[0,oe];Wa(function(){for(var a=sb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=qb(c),d=new ke(d);rb(d,c)}});
function Ne(a){t.call(this,"Keyboard",a,65536);(a=a.model)&&!Oe[a]&&cb("Unrecognized Keyboard8080 model: "+a);this.b=Oe[a]||{};this.reset();Bb(this)}aa(Ne,t);l=Ne.prototype;
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Qa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Pe(d,16,!0,!0):Pe(d,16,!1),Pe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Qe(d,a,!0)},c.onkeyup=function(a){return Qe(d,a,!1)}):(c.onkeydown=function(a){return Re(d,a,!0)},
c.onkeyup=function(a){return Re(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(Se|Te)||(d.g|=Te,Pe(d,20,!0),Ue(d)):a>=m.yc&&a<=m.z&&d.g&Te&&(d.g&=~Te,Pe(d,20,!1),Ue(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Ve(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
@ -198,15 +198,15 @@ this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.lengt
var Sf=12,Tf=16,Uf=192,ag=2,$f=32,bg=64,ee=1,Vf=2,Yf=4,Xf=128,Wf=15,Zf=240,Rf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Pf=[!1,0,0,133,142,39,238],Kf="buffer",Mf={0:Jf.prototype.Hd,1:Jf.prototype.Gd},Nf={0:Jf.prototype.Vd,1:Jf.prototype.Ud,2:Jf.prototype.Td};Wa(function(){for(var a=sb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=qb(c),d=new Jf(d);rb(d,c)}});
function cg(a){t.call(this,"Debugger",a);this.L=+a.base||16;this.oa=null;this.W=["{","}"];this.fa=["[","]"];this.O=this.ba=this.C=0;this.M=!1;this.b=-1;this.g=[];this.T={}}aa(cg,t);cg.prototype.Kb=function(){return-1};cg.prototype.Lb=function(){};
cg.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.M?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ca(a.substring(d,f))),d=f+1}}return b};
function dg(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}
function eg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=Math.trunc(f/e);break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;
case "&":d=f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;case "><":d=f;if(e=35-(e&255))0>d&&(d+=Math.pow(2,36)),d=0<e?d*Math.pow(2,e):Math.trunc(d/Math.pow(2,-e));break;default:return!1}a.push(dg(d))}return!0}
function fg(a,b,c,d,e,f){var g,h,k,q=!1,u=!1,v=[],B=[],y=a.L;for(a.L=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)u=gg(a,h,null,f,u);else if("{"==k){h=1;for(u=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;u=fg(a,b,u,c-1,a.L,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("-"!=k){q=!0;break}u=!0;continue}if(void 0===u)if(null==a.oa&&f)a.oa=h,u=0;else{q=!0;f=!f;break}v.push(dg(u));if(!k)break;B.length&&hg[k]<hg[B[B.length-1]]&&eg(v,B,1);B.push(k);a.L="><"==k?10:e;u=!1}eg(v,
B)&&1==v.length||(q=!0);q?!1===f&&a.i("parse error ("+(h||k)+")"):g=v.pop();a.L=y;return g}function ig(a,b,c){var d;a.oa=null;b&&("{"!=a.W[0]&&(b=b.split(a.W[0]).join("{").split(a.W[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2><"),b=b.split(/(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=fg(a,b,0,b.length,a.L,c),void 0!==d&&!1===c&&jg(a,null,d));return d}
function dg(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?d=a%b:a>=2*b&&(d=a%(2*b)));a!=d&&(a=d);return a}
function eg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=dg(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(dg(e))}return!0}
function fg(a,b,c,d,e,f){var g,h,k,q=!1,u=0,v=[],B=[],y=a.L;for(a.L=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)u=gg(a,h,null,f,u);else if("{"==k){h=1;for(u=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;u=fg(a,b,u,c-1,a.L,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("~"==k||"^-"==k){u=1;continue}if("-"==k){u=-1;continue}q=!0;break}if(void 0===u)if(null==a.oa&&f)a.oa=h,u=0;else{q=!0;f=!f;break}v.push(dg(u));if(!k)break;B.length&&hg[k]<hg[B[B.length-1]]&&eg(v,B,1);
B.push(k);a.L="^_"==k?10:e;u=0}eg(v,B)&&1==v.length||(q=!0);q?!1===f&&a.i("parse error ("+(h||k)+")"):g=v.pop();a.L=y;return g}function ig(a,b,c){var d;a.oa=null;b&&("{"!=a.W[0]&&(b=b.split(a.W[0]).join("{").split(a.W[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_"),b=b.split(/(\{|}|\|\||&&|\||\^!|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=fg(a,b,0,b.length,a.L,c),void 0!==d&&!1===c&&jg(a,null,d));return d}
function kg(a,b){var c,d=a.W[0],e=a.W[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=ig(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?lg(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=
a.O-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function gg(a,b,c,d,e){var f;null!=b?(f=a.Kb(b),0<=f?f=a.Lb(f):(f=a.T[b],null==f&&(f=ma(e?"-"+b:b,a.L),e=!1)),null!=f?e&&(f=-f):d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return f}
a.O-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function gg(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.Kb(b),0<=f?f=a.Lb(f):(f=a.T[b],null==f&&(0>e&&(b="-"+b,e=0),f=ma(b,a.L))),null!=f?0>e?f=-f:0<e&&(f|=-1):d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return f}
function jg(a,b,c){var d,e=!1;if(void 0!==c){e=!0;if(8==a.L)d=c+". "+qa(c,0,!0);else{d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++)g&&(g=","+g),g=pa(d&255,8)+g,d>>=8;d=n(c,0,!0)+" "+c+". "+qa(c,0,!0)+" "+("0b"+g)}32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}function mg(a,b){if(b)return jg(a,b,a.T[b]);var c=0;for(b in a.T)jg(a,b,a.T[b]),c++;return 0<c}
function lg(a,b){var c;c=void 0===c?0:c;switch(a.L){case 2:b=pa(b,0<c?c:0);break;case 8:b=qa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=n(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var hg={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10,"{":11,"}":11};
function lg(a,b){var c;c=void 0===c?0:c;switch(a.L){case 2:b=pa(b,0<c?c:0);break;case 8:b=qa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=n(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var hg={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11};
function ng(a){cg.call(this,a);this.style=og;this.F=pg();this.ta=pg();this.S=pg();this.A=[];this.j=this.I=this.w=[];qg(this);this.X=0;rg(this);this.ka={};sg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Pc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Pc(b,a)})}aa(ng,cg);l=ng.prototype;
l.Ga=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Lc(a,"messages"))&&sg(this,a);this.sa=tg;be(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=ug(vg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,q=0;k--;){var u=b[e];u.type==c?q++||d.i("..."):(c=u.type,q=Ub[c],u&&d.i(n(u.id)+" %"+n(e<<d.H.g)+" %%"+n(u.J)+" "+p(u.pb)+" "+
p(u.size)+" "+q),c!=xc&&(c=-1),q=0);a+=d.H.w;e++}}});Bb(this)};
@ -248,18 +248,18 @@ function Bh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.M&&(a.i("e
u,void 0===f[2])a.i("begin assemble at "+Zg(u.J)),a.M=!0,Qc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(u,v[B],1);a.i(Ch(a,a.S))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+Ah(a,a.j);za+=Ah(a,a.I);(za+=Ah(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.X=gg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=pg();if("*"!=w&&(L=vg(a,w,!0),!L))break a;w=p(L.J);"c"==T?null==L.J?(qg(a),a.i("all breakpoints cleared")):yh(a,a.j,L)||yh(a,a.I,L)||yh(a,a.w,L)||a.i("breakpoint missing: "+Zg(L.J)):
"i"==T?a.i("breakpoint "+(bc(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(gc(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Yg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.I,L):"w"==T?a.Pa(a.w,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],fc=f[3];if("?"==na){var Nb="";for(ja in Jb)a.ka[ja]&&(Nb&&(Nb+=","),Nb+=ja);Nb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Nb.length&&a.i("dump extension commands:\n\t"+Nb)}else if("state"==na){var qe=di(a.R,!0);"console"==Ma?console.log(qe):(a.ua&&(a.ua.value=""),qe&&a.i(qe))}else if("symbols"==na)for(var re=0;re<a.A.length;re++){var se=a.A[re],Ob;for(Ob in se.ra)if("."!=Ob.charAt(0)){var zg=se.ra[Ob].o;if(void 0!==zg){var Ag=se.ra[Ob].l;Ag&&(Ob=Ag);a.i(Zg(zg)+" "+
Ob)}}}else{if("d"==ua){for(ja in Jb)if(f[1]==ja){var Bg=a.ka[ja];Bg?(f.shift(),f.shift(),Bg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Ha||"db")}else a.Ha=ua;if("dh"==ua){var Cg=na,Dg=Ma,Eg="",Fg=0,Na=a.U,Za=a.D;if(Za.length){var Ba=+Cg||a.ya,kc=+Dg||10;isNaN(Ba)?Ba=kc:Eg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var te=[];"call"==Dg&&(kc=1E5,te=["CALL"]);for(void 0!==Cg&&a.i(Ba+
" instructions earlier:");0<kc&&Na!=a.U;){var Gg=Za[Na++];if(null==Gg.J)break;var lc=pg(Gg.J),Hi=Ba--,Hg=Ch(a,lc,"history",Hi);(!te.length||0<=Hg.indexOf(te[0]))&&a.i(Hg);lc.Jb&&(Na+=lc.Jb,kc-=lc.Jb,Ba-=lc.Jb);Na>=Za.length&&(Na=0);a.ya=Ba;Fg++;kc--}}Fg||(a.i("no "+Eg+"history available"),a.ya=void 0)}else{var $c=vg(a,na);if($c){var ad=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||fc),ad=gg(a,Ma)>>>0,65536<ad&&(ad=65536));for(var mc="",bd="dd"==ua?4:"dw"==ua?2:1,cd=bd*ad||128,Ii=cd+15>>4||1;Ii--&&0<
cd;){var dd=0,ue=0,nc,ve="",Ig="",na=Zg($c.J);for(nc=16;0<nc&&0<cd;nc--){var ed=a.Ia($c,1),dd=dd|ed<<(ue++<<3);ue==bd&&(ve+=n(dd,2*bd),ve+=1==bd?9==nc?"-":" ":" ",dd=ue=0);Ig+=32<=ed&&128>ed?String.fromCharCode(ed):".";cd--}mc&&(mc+="\n");mc+=na+" "+ve+(nc?"":" "+Ig)}mc&&a.i(mc);a.ta=$c}}}}break;case "e":if("else"==f[0])break;var fd=1,Jg=255,Kg=a.Ia,Lg=a.Xb;"ew"==f[0]&&(fd=2,Jg=65535,Kg=a.Gb,Lg=a.Qc);var Mg=fd<<1,Ng=f[1];if(null==Ng)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var gd=vg(a,Ng);if(gd)for(var hd=2;hd<f.length;hd++){var oc=ig(a,f[hd]);if(void 0===oc){a.i("unrecognized value: "+f[hd]);break}oc&~Jg&&a.i("warning: "+n(oc)+" exceeds "+fd+"-byte value");var Ji=Kg.call(a,gd);a.i("changing "+Zg(gd.J)+" from "+n(Ji,Mg,!0)+" to "+n(oc,Mg,!0));Lg.call(a,gd,oc,fd)}}break;case "f":Yh(a,f[1]);break;case "g":a:{var Og=f[1],Ki=b;if(void 0!==Og){var we=vg(a,Og,!0);if(!we)break a;Yg(a,we,Ki);a.Pa(a.j,we,!0)}th(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var xe;if(a.G.ma)xe="halting",a.ea();else{if(Cb(a,!0))break a;xe="already halted"}c||a.i(xe)}break;case "i":if("if"==f[0]){var ye;var pc=b.substr(2),pc=Ca(pc);ig(a,pc)?(c||a.i("true: "+pc),ye=!0):(c||a.i("false: "+pc),ye=!1);ye||(d=!1);break}if("int"==f[0]){var id;var Li=f[1];if(a.u.N&512){var ze=ig(a,Li);null==ze?id=!1:(a.i("requesting interrupt level "+ze),Td(a.u,ze),id=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),id=!1;id||(d=!1);break}var Ae=f[1];if(Ae&&"?"!=Ae){var Be=
gg(a,Ae);if(void 0!==Be){var Mi=dc(a.H,Be);a.i(p(Be)+": "+ra(Mi))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Ni=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Ce=0,Pg=pg(),qc=pg(a.u.M);for(a.i("stack trace for "+Zg(qc.J));10>Ce;){for(var ub=null,Oi=256;65536>qc.J>>>0;){Pg.J=a.Gb(qc,2);if(null==qc.J||!Oi--)break;for(var Pi=a,jd=Pg,
Qg=null,rc=jd.J,Rg=rc,De=1;6>=De&&rc;De++){if(2<De){jd.J=rc;var kd=Ch(Pi,jd);if(0<=kd.indexOf("CALL")){var Sg=kd.indexOf(" ");if(rc+(kd.indexOf(" ",Sg+1)-Sg-1)/2==Rg){Qg=kd;break}}}rc--}jd.J=Rg;if(ub=Qg)break}if(!ub||null==ub)break;var Tg=null;if("ks"==Ni){var Ug=ub.match(/[0-9A-F]+$/);Ug&&(Tg=$h(a,Ug[0]))}ub=Aa(ub,50)+" ;"+(Tg||"stack="+Zg(qc.J));a.i(ub);Ce++}Ce||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&$h(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var mb=0;if("all"==ba)mb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Jb)if(ba==$a){mb=Jb[$a];ab=!!(a.ha&mb);break}if(!mb){a.i("unknown message category: "+ba);break a}}if(mb)if("on"==f[2])a.ha|=mb,ab=!0;else if("off"==f[2]&&(a.ha&=~mb,ab=!1,1073741824==mb)){for(var Ee=0;Ee<a.Z.length;Ee++)a.i(a.Z[Ee]);a.Z=[]}}var Qi=0,sc="";for($a in Jb)if(!ba||ba==$a){var Ri=!!(a.ha&Jb[$a]);if(null===
ab||ab==Ri)sc&&(sc+=","),++Qi%10||(sc+="\n\t"),"key"==$a&&($a="keys"),sc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(sc||"none"));rg(a)}break;case "o":var Fe=f[1],Si=f[2];if(Fe&&"?"!=Fe){var Ge=gg(a,Fe,"port #"),He=gg(a,Si);void 0!==Ge&&void 0!==He&&(ic(a.H,Ge,He),a.i(p(Ge)+": "+ra(He)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){bi(a,b.substr(5));break}var Vg="pr"==f[0]?1:0,Ti=1+Vg;if(a.N)a.i("step in progress");else{var Ie=pg(a.u.j);switch(a.Ia(Ie)){case 205:a.N=Ti,xg(Ie,3)}a.N?(a.Pa(a.j,Ie,!0),th(a)||(a.R&&a.R.Za(),a.N=0)):ci(a,Vg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}vh(a,f);break;case "s":ai(a,f);break;case "t":ci(a,f[0],f[1]);break;case "u":wh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Zh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.2 ("+a.u.xb+",RELEASE"+
(Hb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ja());break;case "?":if(f[1]){bi(a,b.substr(1));break}var Je="commands:",Ke;for(Ke in ei)Je+="\n"+Aa(Ke,9)+ei[Ke];Ud(a)||(Je+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Je);break;default:a.i("unknown command: "+b),d=!1}}}catch(Xg){a.i("debugger error: "+(Xg.stack||Xg.message)),d=!1}return d}function Pc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!Bh(a,b[+d]))return!1;return!0}
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Nb.length&&a.i("dump extension commands:\n\t"+Nb)}else if("state"==na){var re=di(a.R,!0);"console"==Ma?console.log(re):(a.ua&&(a.ua.value=""),re&&a.i(re))}else if("symbols"==na)for(var se=0;se<a.A.length;se++){var te=a.A[se],Ob;for(Ob in te.ra)if("."!=Ob.charAt(0)){var zg=te.ra[Ob].o;if(void 0!==zg){var Ag=te.ra[Ob].l;Ag&&(Ob=Ag);a.i(Zg(zg)+" "+
Ob)}}}else{if("d"==ua){for(ja in Jb)if(f[1]==ja){var Bg=a.ka[ja];Bg?(f.shift(),f.shift(),Bg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Ha||"db")}else a.Ha=ua;if("dh"==ua){var Cg=na,Dg=Ma,Eg="",Fg=0,Na=a.U,Za=a.D;if(Za.length){var Ba=+Cg||a.ya,kc=+Dg||10;isNaN(Ba)?Ba=kc:Eg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var ue=[];"call"==Dg&&(kc=1E5,ue=["CALL"]);for(void 0!==Cg&&a.i(Ba+
" instructions earlier:");0<kc&&Na!=a.U;){var Gg=Za[Na++];if(null==Gg.J)break;var lc=pg(Gg.J),Hi=Ba--,Hg=Ch(a,lc,"history",Hi);(!ue.length||0<=Hg.indexOf(ue[0]))&&a.i(Hg);lc.Jb&&(Na+=lc.Jb,kc-=lc.Jb,Ba-=lc.Jb);Na>=Za.length&&(Na=0);a.ya=Ba;Fg++;kc--}}Fg||(a.i("no "+Eg+"history available"),a.ya=void 0)}else{var $c=vg(a,na);if($c){var ad=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||fc),ad=gg(a,Ma)>>>0,65536<ad&&(ad=65536));for(var mc="",bd="dd"==ua?4:"dw"==ua?2:1,cd=bd*ad||128,Ii=cd+15>>4||1;Ii--&&0<
cd;){var dd=0,ve=0,nc,we="",Ig="",na=Zg($c.J);for(nc=16;0<nc&&0<cd;nc--){var ed=a.Ia($c,1),dd=dd|ed<<(ve++<<3);ve==bd&&(we+=n(dd,2*bd),we+=1==bd?9==nc?"-":" ":" ",dd=ve=0);Ig+=32<=ed&&128>ed?String.fromCharCode(ed):".";cd--}mc&&(mc+="\n");mc+=na+" "+we+(nc?"":" "+Ig)}mc&&a.i(mc);a.ta=$c}}}}break;case "e":if("else"==f[0])break;var fd=1,Jg=255,Kg=a.Ia,Lg=a.Xb;"ew"==f[0]&&(fd=2,Jg=65535,Kg=a.Gb,Lg=a.Qc);var Mg=fd<<1,Ng=f[1];if(null==Ng)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var gd=vg(a,Ng);if(gd)for(var hd=2;hd<f.length;hd++){var oc=ig(a,f[hd]);if(void 0===oc){a.i("unrecognized value: "+f[hd]);break}oc&~Jg&&a.i("warning: "+n(oc)+" exceeds "+fd+"-byte value");var Ji=Kg.call(a,gd);a.i("changing "+Zg(gd.J)+" from "+n(Ji,Mg,!0)+" to "+n(oc,Mg,!0));Lg.call(a,gd,oc,fd)}}break;case "f":Yh(a,f[1]);break;case "g":a:{var Og=f[1],Ki=b;if(void 0!==Og){var xe=vg(a,Og,!0);if(!xe)break a;Yg(a,xe,Ki);a.Pa(a.j,xe,!0)}th(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var ye;if(a.G.ma)ye="halting",a.ea();else{if(Cb(a,!0))break a;ye="already halted"}c||a.i(ye)}break;case "i":if("if"==f[0]){var ze;var pc=b.substr(2),pc=Ca(pc);ig(a,pc)?(c||a.i("true: "+pc),ze=!0):(c||a.i("false: "+pc),ze=!1);ze||(d=!1);break}if("int"==f[0]){var id;var Li=f[1];if(a.u.N&512){var Ae=ig(a,Li);null==Ae?id=!1:(a.i("requesting interrupt level "+Ae),Td(a.u,Ae),id=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),id=!1;id||(d=!1);break}var Be=f[1];if(Be&&"?"!=Be){var Ce=
gg(a,Be);if(void 0!==Ce){var Mi=dc(a.H,Ce);a.i(p(Ce)+": "+ra(Mi))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Ni=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var De=0,Pg=pg(),qc=pg(a.u.M);for(a.i("stack trace for "+Zg(qc.J));10>De;){for(var ub=null,Oi=256;65536>qc.J>>>0;){Pg.J=a.Gb(qc,2);if(null==qc.J||!Oi--)break;for(var Pi=a,jd=Pg,
Qg=null,rc=jd.J,Rg=rc,Ee=1;6>=Ee&&rc;Ee++){if(2<Ee){jd.J=rc;var kd=Ch(Pi,jd);if(0<=kd.indexOf("CALL")){var Sg=kd.indexOf(" ");if(rc+(kd.indexOf(" ",Sg+1)-Sg-1)/2==Rg){Qg=kd;break}}}rc--}jd.J=Rg;if(ub=Qg)break}if(!ub||null==ub)break;var Tg=null;if("ks"==Ni){var Ug=ub.match(/[0-9A-F]+$/);Ug&&(Tg=$h(a,Ug[0]))}ub=Aa(ub,50)+" ;"+(Tg||"stack="+Zg(qc.J));a.i(ub);De++}De||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&$h(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var mb=0;if("all"==ba)mb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Jb)if(ba==$a){mb=Jb[$a];ab=!!(a.ha&mb);break}if(!mb){a.i("unknown message category: "+ba);break a}}if(mb)if("on"==f[2])a.ha|=mb,ab=!0;else if("off"==f[2]&&(a.ha&=~mb,ab=!1,1073741824==mb)){for(var Fe=0;Fe<a.Z.length;Fe++)a.i(a.Z[Fe]);a.Z=[]}}var Qi=0,sc="";for($a in Jb)if(!ba||ba==$a){var Ri=!!(a.ha&Jb[$a]);if(null===
ab||ab==Ri)sc&&(sc+=","),++Qi%10||(sc+="\n\t"),"key"==$a&&($a="keys"),sc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(sc||"none"));rg(a)}break;case "o":var Ge=f[1],Si=f[2];if(Ge&&"?"!=Ge){var He=gg(a,Ge,"port #"),Ie=gg(a,Si);void 0!==He&&void 0!==Ie&&(ic(a.H,He,Ie),a.i(p(He)+": "+ra(Ie)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){bi(a,b.substr(5));break}var Vg="pr"==f[0]?1:0,Ti=1+Vg;if(a.N)a.i("step in progress");else{var Je=pg(a.u.j);switch(a.Ia(Je)){case 205:a.N=Ti,xg(Je,3)}a.N?(a.Pa(a.j,Je,!0),th(a)||(a.R&&a.R.Za(),a.N=0)):ci(a,Vg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}vh(a,f);break;case "s":ai(a,f);break;case "t":ci(a,f[0],f[1]);break;case "u":wh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Zh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.2 ("+a.u.xb+",RELEASE"+
(Hb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ja());break;case "?":if(f[1]){bi(a,b.substr(1));break}var Ke="commands:",Le;for(Le in ei)Ke+="\n"+Aa(Le,9)+ei[Le];Ud(a)||(Ke+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ke);break;default:a.i("unknown command: "+b),d=!1}}}catch(Xg){a.i("debugger error: "+(Xg.stack||Xg.message)),d=!1}return d}function Pc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!Bh(a,b[+d]))return!1;return!0}
var ei={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
og=8080,Dh=8086,Eh="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Fh="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
dh=0,eh=1,fh=2,gh=3,hh=4,ih=5,jh=6,ch=7,kh=8,lh=9,mh=10,nh=11,oh=12,ph=13,qh=14,ah="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Ih=15,Hh=240,Qh=3840,Jh=61440,Gh=0,Q=1,Mh=2,Nh=3,Ph=16,P=32,Oh=64,Rh=128,R=ch<<8|Ph|Q,S=dh<<8|Ph|Q,U=eh<<8|Ph|Q,V=fh<<8|Ph|Q,W=gh<<8|Ph|Q,X=hh<<8|Ph|Q,Y=ih<<8|Ph|Q,Z=jh<<8|Ph|Q|Oh,fi=kh<<8|Ph|Nh,gi=lh<<8|Ph|Nh,hi=mh<<8|Ph|Nh,ii=nh<<8|Ph|Nh,ji=qh<<8|Ph|Nh,Lh=4096,Kh=8192,O=16384,Sh=32768,tg=[[45],[42,fi,P],[71,fi|Oh,R|O],[29,fi],[28,S],[22,S],[44,S,P],[63],[45,Sh],[21,

View file

@ -427,8 +427,8 @@ r(b.od)+" IRR="+r(b.ac)+" ISR="+r(b.Ec)+" DELAY="+b.We;e.ba.P(c)}});Al(d,2048,fu
l.Xb=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0};
l.reset=function(a){var b;Fl(this);this.F=Array(this.za);for(b=0;b<this.za;b++)Gl(this,b);this.hc=Array(this.ha);Hl(this,Il,Jl);1<this.ha&&Hl(this,Kl,Ll);this.va=this.ta=null;this.G=Array((this.ca|0)==xl?6:3);for(b=0;b<this.G.length;b++)Ml(this,b);this.ga=this.Ca=this.J=this.xa=null;this.da=ih;this.ca==ll&&(this.aa=0);if(this.ca>=eh){this.D=Nl;this.L=0;this.K=Ol;this.oa=0;this.M=Pl|Ql;512<=Rl(this)&&(this.M|=Sl);+Tl(this,hl,void 0)==Ul&&(this.M|=Vl);(this.ca|0)==xl&&(this.M=this.M|Wl|Xl);this.qa=
Yl|Zl;this.Y=Array(8);this.V=0;a&&(this.A=Array(Cl));$l(this,this.Ma);for(a=am;a<=bm;a++)this.A[a]=0;for(a=cm;a<dm;a++)void 0===this.A[a]&&(this.A[a]=0);a=0|+Tl(this,hl,void 0)<<em.Mg&em.yc;a|=+Tl(this,nl,void 0)?fm:0;b=+Tl(this,gl,void 0);a|=b?b-1<<gm.Mg&gm.yc|gm.ol:0;this.A[hm]=a;this.A[im]=jm(this,0)<<4|jm(this,1);km(this)}};
function $l(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.P("CMOS date invalid ("+b+"), using "+c)):b&&a.P("CMOS date: "+c);a.A[lm]=c.getSeconds();a.A[mm]=0;a.A[nm]=c.getMinutes();a.A[om]=0;a.A[Gm]=c.getHours();a.A[Hm]=0;a.A[Im]=c.getDay()+1;a.A[Jm]=c.getDate();a.A[Km]=c.getMonth()+1;b=c.getFullYear();a.A[Lm]=b%100;b/=100;a.A[Mm]=b%10|b/10<<4;a.A[Nm]=38;a.A[Rd]=Om;a.A[Pm]=0;a.A[Dl]=Qm;a.ma=a.Z=0;a.Ha=a.Aa=null}
function El(a,b){var c=a.A[b];if(b<Nm){var d=!1;b!=Gm&&b!=Hm||a.A[Rd]&Om||(12>c?c=c?c:12:c=(c-=12)?c+128:140,d=!0);a.A[Rd]&Rm||(d&&128<c&&(c-=48),c=c%10|c/10<<4)}else b==Nm&&(a.A[b]^=Sm);return c}function Tm(a){var b;void 0===b&&(b=a.Aa);a.Z=Ed(a.H,a.O)+b;a.A[Rd]&Td&&Gd(a.H,b)}function km(a){for(var b=0,c=im;c<dm;c++)b+=a.A[c];a.A[Um]=b&255;a.A[dm]=b>>8}
function $l(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.P("CMOS date invalid ("+b+"), using "+c)):b&&a.P("CMOS date: "+c);a.A[lm]=c.getSeconds();a.A[mm]=0;a.A[nm]=c.getMinutes();a.A[om]=0;a.A[pm]=c.getHours();a.A[Hm]=0;a.A[Im]=c.getDay()+1;a.A[Jm]=c.getDate();a.A[Km]=c.getMonth()+1;b=c.getFullYear();a.A[Lm]=b%100;b/=100;a.A[Mm]=b%10|b/10<<4;a.A[Nm]=38;a.A[Rd]=Om;a.A[Pm]=0;a.A[Dl]=Qm;a.ma=a.Z=0;a.Ha=a.Aa=null}
function El(a,b){var c=a.A[b];if(b<Nm){var d=!1;b!=pm&&b!=Hm||a.A[Rd]&Om||(12>c?c=c?c:12:c=(c-=12)?c+128:140,d=!0);a.A[Rd]&Rm||(d&&128<c&&(c-=48),c=c%10|c/10<<4)}else b==Nm&&(a.A[b]^=Sm);return c}function Tm(a){var b;void 0===b&&(b=a.Aa);a.Z=Ed(a.H,a.O)+b;a.A[Rd]&Td&&Gd(a.H,b)}function km(a){for(var b=0,c=im;c<dm;c++)b+=a.A[c];a.A[Um]=b&255;a.A[dm]=b>>8}
l.save=function(){var a=new Xf(this);a.set(0,[this.C]);for(var b=[],c=0;c<this.F;c++){for(var d=this.F[c],e=d,f=[],g=0;g<e.oc.length;g++){var h=e.oc[g];f[g]=[h.ne,h.fg,h.pc,h.tb,h.qb,h.mode,h.hg,h.Oo,h.Po]}b[c]=[d.Mb,d.Xg,d.Xi,d.zb,f,d.Yi]}a.set(1,[b]);b=[];for(c=0;c<this.hc.length;c++)d=this.hc[c],b[c]=[d.We,d.Kc,d.Ld,d.od,d.ac,d.Ec,d.ge,d.nf];a.set(2,[b]);b=[];for(c=0;c<this.G.length;c++)d=this.G[c],b[c]=[d.pc,d.Mc,d.qb,d.je,d.Zg,d.mode,d.Qf,d.rd,d.ad,d.gd,d.Me,d.le,d.jd,d.Mb,d.Qe];a.set(3,[this.ta,
b,this.va]);a.set(4,[this.xa,this.J,this.Ca,this.ga,this.da]);this.ca>=eh&&(a.set(5,[this.D,this.L,this.K,this.oa,this.M,this.qa]),a.set(6,[this.Y[7],this.Y,this.V,this.A,this.ma,this.Z]));return a.data()};
l.restore=function(a){var b,c;b=a[0];Array.isArray(b[0])?this.C=b[0]:(this.C[0][0]=b[0],this.C[1][0]=b[1]&15,this.C[0][1]=b[2],this.C[1][1]=b[3]&15);Fl(this);b=a[1];for(c=0;c<this.za;c++)Gl(this,c,1==b.length?b[0][c]:b);b=a[2];for(c=0;c<this.ha;c++)Hl(this,c,c?Ll:Jl,b[0][c]);b=a[3];this.ta=b[0];this.va=b[2];for(c=0;c<this.G.length;c++)Ml(this,c,b[1][c]);b=a[4];this.xa=b[0];this.J=b[1];this.Ca=b[2];this.ga=b[3];this.da=b[4];if(b=a[5])this.D=b[0],this.L=b[1],this.K=b[2],this.oa=b[3],this.M=b[4],this.qa=
@ -456,7 +456,7 @@ function po(a,b,c,d,e,f){t(a,2304)&&w(a,d,e,f,"PIT"+b+".TIMER"+c,null,!0);f=b?3:
function yo(a,b,c,d,e){w(a,c,d,e,"PIT"+b+".CTRL",null,2048);e=0;c=d&zo;b?(e=3,a.va=d):a.ta=d;if(c==Ao){if(!(d&Bo))for(c=0;2>=c;c++)if(d&Co<<c){b=e+c;var f=a.G[b];f.Qe||(Bl(a,b),f.Mb=f.Zg|f.mode|f.Qf|(f.rd<f.ad?Do:0)|(f.gd?Eo:0),f.Qe=!0)}if(!(d&Fo))for(c=0;2>=c;c++)d&Co<<c&&Go(a,e+c)}else{c>>=Ho;var f=d&Io,g=d&Jo;d&=Ko;if(d==Lo)Go(a,e+c);else{e+=c;var h=a.G[e];h.Qf=d;h.mode=g;h.Zg=f;h.pc=[0,0];h.qb=[0,0];h.je=[0,0];h.gd=!1;h.Me=!1;h.le=!1;h.Qe=!1;oo(a,e);b==so&&c==to&&fh(a,uo);b==so&&c==wo&&255==a.hc[0].od&&
a.J==(Mo|No|Oo|Po)&&(b=a.G[0],b.Mc[0]=b.pc[0],b.Mc[1]=b.pc[1],b.jd=Ed(a.H,a.O))}}}function vo(a,b){a=a.G[b];(b=a.pc[1]<<8|a.pc[0])||(b=1==a.ad?256:65536);return b}function Pd(a,b){a=a.G[b];(b=a.Mc[1]<<8|a.Mc[0])||(b=1==a.ad?256:65536);return b}function Go(a,b){Bl(a,b);var c=a.G[b];c.je[0]=c.qb[0];c.je[1]=c.qb[1];c.Me=!0;oo(a,b)}function oo(a,b){a=a.G[b];a.rd=a.Qf==Qo?1:0;a.ad=a.Qf==Ro?2:1}
function Bl(a,b,c){var d=a.G[b];if(d.le&&(b!=wo||a.J&Mo)){var e=Ed(a.H,a.O),f=(e-d.jd)/a.Ba|0;0>f&&(d.jd=e,f=0);var g=vo(a,b),h=Pd(a,b)-f;d.mode==qo?(0>=h&&(h=0),h||(d.gd=!0,d.le=!1,b||hh(a,uo))):d.mode==So?(d.gd=1!=h,0>=h&&(h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&hh(a,uo))):d.mode==Qd&&(h-=f,0>=h&&(d.gd=!d.gd,h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&hh(a,uo)));d.qb[0]=h&255;d.qb[1]=h>>8&255;c&&(a.jd=0)}return d}
function Od(a,b){for(var c=0;c<a.G.length;c++)Bl(a,c,b);if(a.ca>=eh){b=a.H.T.sd;c=Ed(a.H,a.O);null==a.Aa&&(a.ma=Ed(a.H,a.O),a.Ha=1024,a.Aa=Math.floor(a.H.T.sd/a.Ha),Tm(a));c>=a.Z&&(a.A[Pm]|=To,a.A[Rd]&Td&&(a.A[Pm]|=Uo,hh(a,Vo)),a.Z=c+a.Aa);a.A[lm]==a.A[mm]&&a.A[nm]==a.A[om]&&a.A[Gm]==a.A[Hm]&&(a.A[Pm]|=Wo,a.A[Rd]&Xo&&(a.A[Pm]|=Uo,hh(a,Vo)));var d=c-a.ma,e=Math.floor(d/b);if(e&&!(a.A[Rd]&Yo)){for(;e--;)if(60<=++a.A[lm]&&(a.A[lm]=0,60<=++a.A[nm]&&(a.A[nm]=0,24<=++a.A[Gm]))){a.A[Gm]=0;a.A[Im]=a.A[Im]%
function Od(a,b){for(var c=0;c<a.G.length;c++)Bl(a,c,b);if(a.ca>=eh){b=a.H.T.sd;c=Ed(a.H,a.O);null==a.Aa&&(a.ma=Ed(a.H,a.O),a.Ha=1024,a.Aa=Math.floor(a.H.T.sd/a.Ha),Tm(a));c>=a.Z&&(a.A[Pm]|=To,a.A[Rd]&Td&&(a.A[Pm]|=Uo,hh(a,Vo)),a.Z=c+a.Aa);a.A[lm]==a.A[mm]&&a.A[nm]==a.A[om]&&a.A[pm]==a.A[Hm]&&(a.A[Pm]|=Wo,a.A[Rd]&Xo&&(a.A[Pm]|=Uo,hh(a,Vo)));var d=c-a.ma,e=Math.floor(d/b);if(e&&!(a.A[Rd]&Yo)){for(;e--;)if(60<=++a.A[lm]&&(a.A[lm]=0,60<=++a.A[nm]&&(a.A[nm]=0,24<=++a.A[pm]))){a.A[pm]=0;a.A[Im]=a.A[Im]%
7+1;var f;f=a.A[Lm];var g=Ja[a.A[Km]-1];28==g&&(f%4||!(f%100)&&f%400||g++);f=g;++a.A[Jm]>f&&(a.A[Jm]=1,12<++a.A[Km]&&(a.A[Km]=1,a.A[Lm]=(a.A[Lm]+1)%100))}a.A[Pm]|=Zo;a.A[Rd]&$o&&(a.A[Pm]|=Uo,hh(a,Vo))}a.ma=c-d%b}}l.Gm=function(a,b){var c=this.xa;this.ga&ap&&(this.J&bp?c=this.C[0][1]:this.B&&(c=cp(this.B)));w(this,a,null,b,"PPI_A",c);return c};l.jo=function(a,b,c){w(this,a,b,c,"PPI_A");this.xa=b};l.Hm=function(a,b){var c=this.J;w(this,a,null,b,"PPI_B",c);return c};
l.ko=function(a,b,c){w(this,a,b,c,"PPI_B");dp(this,b)};function dp(a,b){var c=!!(b&ep),d=!!(a.J&ep);a.J=b;a.B&&fp(a.B,!(b&bp),!!(b&Po));c!=d&&Vm(a,c)}l.Im=function(a,b){var c=0,c=(this.ca|0)==kl?this.J&No?c|this.C[1][1]&gp:c|this.C[1][1]>>4&1:this.J&hp?c|this.C[0][1]>>4:c|this.C[0][1]&15;this.J&Mo&&Bl(this,wo).gd&&(c=this.J&ep?c|ip:c|jp);w(this,a,null,b,"PPI_C",c,32896);return c};l.lo=function(a,b,c){w(this,a,b,c,"PPI_C");this.Ca=b};l.Jm=function(a,b){var c=this.ga;w(this,a,null,b,"PPI_CTRL",c);return c};
l.mo=function(a,b,c){w(this,a,b,c,"PPI_CTRL");this.ga=b};l.Sl=function(a,b){var c=this.B?cp(this.B):0;w(this,a,null,b,"8041_KBD",c);this.aa&=~kp;return c};l.tn=function(a,b,c){w(this,a,b,c,"8041_KBD")};l.Rl=function(a,b){var c=this.J;w(this,a,null,b,"8041_CTRL",c);return c};l.sn=function(a,b,c){w(this,a,b,c,"8041_CTRL");dp(this,b)};l.Tl=function(a,b){var c=this.aa;w(this,a,null,b,"8041_STATUS",c);return c};
@ -466,7 +466,7 @@ l.Vl=function(a,b){var c=this.J&~(zp|Ap)|(Ed(this.H)&64?Ap:0);w(this,a,null,b,"8
l.un=function(a,b,c){w(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.L=b;this.D|=np;a=0;this.L>=Bp&&(a=this.L^15,this.L=Bp);switch(this.L){case Cp:yp(this,this.K);break;case Dp:pp(this,this.K|Ol);break;case Ep:pp(this,this.K&~Ol);this.B&&mp(this.B);break;case Fp:this.B&&(a=this.B,a.A=[],t(a)&&Mb(a,"scan codes flushed"));pp(this,this.K|Ol);yp(this,Gp);rp(this,Yl|Zl);break;case Hp:yp(this,Ip);break;case Jp:yp(this,this.M);break;case Kp:yp(this,this.qa);break;case Lp:yp(this,this.K&Ol?0:Mp);break;case Bp:a&
1&&kf(this.H)}};function pp(a,b){a.K=b;a.D=a.D&~Np|b&Op;a.B&&fp(a.B,!!(b&Pp),!(b&Ol))}function yp(a,b,c){0<=b&&(a.oa=b,c?a.D|=kp:(a.D&=~kp,a.D|=lp))}function rp(a,b){a.qa=b;oc(a.ka,!!(b&Zl));b&Yl||kf(a.H)}function Qp(a,b){a.ca<eh?(hh(a,Rp,4),a.aa|=kp):a.K&Ol||a.D&(kp|lp)||(yp(a,b,!0),Sp(a.B),hh(a,Rp,120))}function Tp(a,b,c,d){var e=a.C[b][1];w(a,c,null,d,"DIPSW-"+b,e,32768);return e}l.jm=function(a,b){w(this,a,null,b,"CMOS.ADDR",this.V,4096);return this.V};
l.Kn=function(a,b,c){w(this,a,b,c,"CMOS.ADDR",null,4096);this.V=b;this.da=b&Up?ih:Vp};l.km=function(a,b){var c=this.V&Wp,d=c<=Dl?El(this,c):this.A[c];t(this,4352)&&w(this,a,null,b,"CMOS.DATA["+r(c)+"]",d,!0);null!=b&&c==Pm&&(this.A[c]&=Xp,d&Uo&&fh(this,Vo),d&To&&this.A[Rd]&Td&&Tm(this));return d};
l.Ln=function(a,b,c){var d=this.V&Wp;t(this,4352)&&w(this,a,b,c,"CMOS.DATA["+r(d)+"]",null,!0);a=b^this.A[d];if(d<=Dl){if(c=b,d<Nm){var e=!1;this.A[Rd]&Rm||(c=10*(c>>4)+(c&15),e=!0);if(d==Gm||d==Hm)e&&23<c&&(c+=48),this.A[Rd]&Om||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;d==Rd&&a&Td&&b&Td&&Tm(this)};l.Nk=function(a,b,c){w(this,a,b,c,"NMI");this.da=b};l.Vn=function(a,b,c){w(this,a,b,c,"FPU.CLEAR")};l.Wn=function(a,b,c){w(this,a,b,c,"FPU.RESET");this.Tc&&$g(this.Tc)};
l.Ln=function(a,b,c){var d=this.V&Wp;t(this,4352)&&w(this,a,b,c,"CMOS.DATA["+r(d)+"]",null,!0);a=b^this.A[d];if(d<=Dl){if(c=b,d<Nm){var e=!1;this.A[Rd]&Rm||(c=10*(c>>4)+(c&15),e=!0);if(d==pm||d==Hm)e&&23<c&&(c+=48),this.A[Rd]&Om||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;d==Rd&&a&Td&&b&Td&&Tm(this)};l.Nk=function(a,b,c){w(this,a,b,c,"NMI");this.da=b};l.Vn=function(a,b,c){w(this,a,b,c,"FPU.CLEAR")};l.Wn=function(a,b,c){w(this,a,b,c,"FPU.RESET");this.Tc&&$g(this.Tc)};
l.Xm=function(a){if(t(this,16)&&Wk(this.ba,26,a)){var b=this.H.D>>8;Tf(this.H,a,function(a,d){return function(c){d=Ed(a.H)-d;var e,g=a.H.L&255,h=a.H.L>>8,k=a.H.L&255,m=a.H.L>>8;if(2==b||3==b)e=" CH(hour)="+ta(h)+" CL(min)="+r(g)+" DH(sec)="+r(m);else if(4==b||5==b)e=" CX(year)="+ta(a.H.I)+" DH(month)="+r(m)+" DL(day)="+r(k);g=a.ba;h=d;g.message("INT "+r(26)+": C="+(dg(g.H)?1:0)+(e||"")+" (cycles="+h+(c?",level="+(c+1):"")+")")}}(this,Ed(this.H)))}return!0};
function Vm(a,b){if(a.la)try{void 0!==b?a.Ga=b:b=!!(a.Ga&&a.H&&a.H.ea.wb);var c=Math.round(ol/vo(a,wo));if(20>c||2E4<c)b=!1;b?a.I?(a.I.frequency.value=c,t(a,33554432)&&Mb(a,"speaker set to "+c+"hz",!0)):(a.I=a.la.createOscillator(),a.I&&(a.I.type="number"==typeof a.I.type?1:"square",a.I.connect(a.la.destination),a.I.frequency.value=c,"start"in a.I?a.I.start(0):a.I.noteOn(0),t(a,33554432)&&Mb(a,"speaker on at "+c+"hz",!0))):a.I&&("stop"in a.I?a.I.stop(0):a.I.noteOff(0),a.I.disconnect(),delete a.I,
t(a,33554432)&&Mb(a,"speaker off at "+c+"hz",!0))}catch(d){a.Fa("AudioContext exception: "+d.message),a.la=null}else b&&Mb(a,"BEEP",33554432)}var kl=5150,cl=5150.9,eh=5170,ll=5160.101,xl=5180,bl={5150:kl,5160:5160,5170:eh,att6300:ll,mpc1600:5150.101,z150:5160.15,compaq:5150.102,other:cl};bl.deskpro386=xl;
@ -474,7 +474,7 @@ var el="sw1",il="sw2",ml="swdesc",Ul=3,un=1,vn=15,yn=3,zn=4,Cn=3,Ln=12,Pn=0,Mn=4
yc:48,Mg:4},gl=1,nl=3,hl=4,kn=5,ln=6,dn={};dn[kl]=[{},{}];dn[kl][0][gl]={yc:192,Zc:{1:0,2:64,3:128,4:192},Ed:"Number of Floppy Drives"};dn[kl][0][nl]={yc:2,Zc:{0:0,1:2},Ed:"FPU"};dn[kl][0][hl]={yc:48,Zc:{0:0,1:16,2:32,3:48,none:0,tv:16,color:32,cga:32,mda:48,mono:48,ega:0,vga:0},Ed:"Monitor Type"};dn[kl][0][kn]={yc:12,Zc:{16:0,32:4,48:8,64:12},Ed:"Base Memory (16Kb Increments)"};
dn[kl][1][ln]={yc:31,Zc:{0:0,32:1,64:2,96:3,128:4,160:5,192:6,224:7,256:8,288:9,320:10,352:11,384:12,416:13,448:14,480:15,512:16,544:17,576:18},Ed:"Expansion Memory (32Kb Increments)"};dn[5160]=[{},{}];dn[5160][0][gl]=dn[kl][0][gl];dn[5160][0][nl]=dn[kl][0][nl];dn[5160][0][hl]=dn[kl][0][hl];dn[5160][0][kn]={yc:12,Zc:{64:0,128:4,192:8,256:12},Ed:"Base Memory (64Kb Increments)"};dn[5160][1][ln]=dn[kl][1][ln];dn[ll]=[{},{}];dn[ll][0][kn]={yc:143,Zc:{128:1,256:130,512:8,640:141},Ed:"Base Memory (128Kb Increments)"};
dn[ll][0][nl]={yc:16,Zc:{0:0,1:16},Ed:"FPU"};dn[ll][1][2]={yc:1,Zc:{0:0,1:1},Ed:"Floppy Type"};dn[ll][1][gl]=dn[kl][0][gl];dn[ll][1][hl]=dn[kl][0][hl];
var Op=4,Pp=8,Ol=16,Gp=85,Ip=0,Wl=4,Xl=8,Sl=16,Pl=32,Vl=64,Ql=128,Yl=1,Zl=2,Mp=1,Ap=16,zp=192,Cp=32,op=96,Fp=170,Hp=171,Dp=173,Ep=174,Jp=192,Kp=208,qp=209,Lp=224,Bp=240,kp=1,Np=4,np=8,Nl=16,lp=256,lm=0,mm=1,nm=2,om=3,Gm=4,Hm=5,Im=6,Jm=7,Km=8,Lm=9,Nm=10,Rd=11,Pm=12,Dl=13,cm=14,im=16,hm=20,am=21,bm=24,dm=46,Um=47,Mm=50,Wp=63,Cl=64,Up=128,Sm=128,Yo=128,Td=64,Xo=32,$o=16,Rm=4,Om=2,Uo=128,To=64,Wo=32,Zo=16,Xp=15,Qm=128,jn=0,en=1,gn=2,fn=3,hn=4,Vp=128,ih=0,Wm=[0,null,null,0,Array(4),0],Ym=[!0,[0,0],[0,
var Op=4,Pp=8,Ol=16,Gp=85,Ip=0,Wl=4,Xl=8,Sl=16,Pl=32,Vl=64,Ql=128,Yl=1,Zl=2,Mp=1,Ap=16,zp=192,Cp=32,op=96,Fp=170,Hp=171,Dp=173,Ep=174,Jp=192,Kp=208,qp=209,Lp=224,Bp=240,kp=1,Np=4,np=8,Nl=16,lp=256,lm=0,mm=1,nm=2,om=3,pm=4,Hm=5,Im=6,Jm=7,Km=8,Lm=9,Nm=10,Rd=11,Pm=12,Dl=13,cm=14,im=16,hm=20,am=21,bm=24,dm=46,Um=47,Mm=50,Wp=63,Cl=64,Up=128,Sm=128,Yo=128,Td=64,Xo=32,$o=16,Rm=4,Om=2,Uo=128,To=64,Wo=32,Zo=16,Xp=15,Qm=128,jn=0,en=1,gn=2,fn=3,hn=4,Vp=128,ih=0,Wm=[0,null,null,0,Array(4),0],Ym=[!0,[0,0],[0,
0],[0,0],[0,0]],$m=[0,Array(4)],an=[[0,0],[0,0],[0,0],[0,0]],pl={0:function(a,b){return on(this,0,0,a,b)},1:function(a,b){return rn(this,0,0,a,b)},2:function(a,b){return on(this,0,1,a,b)},3:function(a,b){return rn(this,0,1,a,b)},4:function(a,b){return on(this,0,2,a,b)},5:function(a,b){return rn(this,0,2,a,b)},6:function(a,b){return on(this,0,3,a,b)},7:function(a,b){return rn(this,0,3,a,b)},8:function(a,b){return tn(this,0,a,b)},13:function(a,b){return Dn(this,0,a,b)},32:function(a,b){return Sn(this,
Il,b)},33:function(a,b){return io(this,Il,b)},64:function(a,b){return no(this,so,to,a,b)},65:function(a,b){return no(this,so,1,a,b)},66:function(a,b){return no(this,so,wo,a,b)},67:function(a,b){return xo(this,so,a,b)},129:function(a,b){return Fn(this,0,2,a,b)},130:function(a,b){return Fn(this,0,3,a,b)},131:function(a,b){return Fn(this,0,1,a,b)},135:function(a,b){return Fn(this,0,0,a,b)}},rl={96:al.prototype.Gm,97:al.prototype.Hm,98:al.prototype.Im,99:al.prototype.Jm},vl={96:al.prototype.Ul,97:al.prototype.Vl,
100:al.prototype.Wl,112:al.prototype.jm,113:al.prototype.km,128:function(a,b){return Hn(this,7,a,b)},132:function(a,b){return Hn(this,0,a,b)},133:function(a,b){return Hn(this,1,a,b)},134:function(a,b){return Hn(this,2,a,b)},136:function(a,b){return Hn(this,3,a,b)},137:function(a,b){return Fn(this,1,2,a,b)},138:function(a,b){return Fn(this,1,3,a,b)},139:function(a,b){return Fn(this,1,1,a,b)},140:function(a,b){return Hn(this,4,a,b)},141:function(a,b){return Hn(this,5,a,b)},142:function(a,b){return Hn(this,
@ -717,15 +717,15 @@ var Tw="Hard Drive",Ww=["XTC","ATC","COMPAQ"],Uw=[{0:[306,2],1:[375,8],2:[306,6]
815:Hw.prototype.hi},Kw={496:Hw.prototype.An,497:Hw.prototype.Fn,498:Hw.prototype.Dn,499:Hw.prototype.En,500:Hw.prototype.zn,501:Hw.prototype.yn,502:Hw.prototype.Bn,503:Hw.prototype.xn,1014:Hw.prototype.Cn};ab(function(){for(var a=Ab(document,"pcx86","hdc"),b=0;b<a.length;b++){var c=a[b],d=wb(c),d=new Hw(d);zb(d,c)}});function Wx(a){nb.call(this,"Debugger",a);this.L=+a.base||16;this.Ha=null;this.qa=["{","}"];this.Aa=["[","]"];this.Y=this.ha=this.M=0;this.da=!1;this.A=-1;this.C=[];this.ga={}}
ba(Wx,nb);Wx.prototype.gh=function(){return-1};Wx.prototype.hh=function(){};Wx.prototype.Pk=function(a,b){return a.replace("["+b+"]","unimplemented")};
Wx.prototype.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.da?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ca(a.substring(d,f))),d=f+1}}return b};
function Xx(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}
function Yx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=Math.trunc(f/e);break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;
case "&":d=f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;case "><":d=f;if(e=35-(e&255))0>d&&(d+=Math.pow(2,36)),d=0<e?d*Math.pow(2,e):Math.trunc(d/Math.pow(2,-e));break;default:return!1}a.push(Xx(d))}return!0}
function Zx(a,b,c,d,e,f){var g,h,k,m=!1,p=!1,v=[],u=[],E=a.L;for(a.L=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=$x(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Zx(a,b,p,c-1,a.L,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("-"!=k){m=!0;break}p=!0;continue}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Xx(p));if(!k)break;u.length&&ay[k]<ay[u[u.length-1]]&&Yx(v,u,1);u.push(k);a.L="><"==k?10:e;p=!1}Yx(v,
u)&&1==v.length||(m=!0);m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.L=E;return g}function by(a,b,c){var d;a.Ha=null;b&&("{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2><"),b=b.split(/(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Zx(a,b,0,b.length,a.L,c),void 0!==d&&!1===c&&cy(a,null,d));return d}
function Xx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?d=a%b:a>=2*b&&(d=a%(2*b)));a!=d&&(a=d);return a}
function Yx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Xx(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(Xx(e))}return!0}
function Zx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.L;for(a.L=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=$x(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Zx(a,b,p,c-1,a.L,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("~"==k||"^-"==k){p=1;continue}if("-"==k){p=-1;continue}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Xx(p));if(!k)break;u.length&&ay[k]<ay[u[u.length-1]]&&Yx(v,u,1);
u.push(k);a.L="^_"==k?10:e;p=0}Yx(v,u)&&1==v.length||(m=!0);m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.L=E;return g}function by(a,b,c){var d;a.Ha=null;b&&("{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_"),b=b.split(/(\{|}|\|\||&&|\||\^!|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Zx(a,b,0,b.length,a.L,c),void 0!==d&&!1===c&&cy(a,null,d));return d}
function dy(a,b){var c,d=a.qa[0],e=a.qa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=by(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?ey(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.ha}if(null==
e)break;b=b.replace(d[0],e.toString())}return b}function $x(a,b,c,d,e){var f;null!=b?(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(f=oa(e?"-"+b:b,a.L),e=!1)),null!=f?e&&(f=-f):d||a.P("invalid "+(c?c:"value")+": "+b)):d||a.P("missing "+(c||"value"));return f}function cy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.L?c+". "+sa(c,0,!0):q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+ra(c,4,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}
function fy(a,b){if(b)return cy(a,b,a.ga[b]);var c=0;for(b in a.ga)cy(a,b,a.ga[b]),c++;return 0<c}function ey(a,b){var c;c=void 0===c?0:c;switch(a.L){case 2:b=qa(b,0<c?c:0);break;case 8:b=sa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var ay={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10,"{":11,"}":11};
e)break;b=b.replace(d[0],e.toString())}return b}function $x(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(0>e&&(b="-"+b,e=0),f=oa(b,a.L))),null!=f?0>e?f=-f:0<e&&(f|=-1):d||a.P("invalid "+(c?c:"value")+": "+b)):d||a.P("missing "+(c||"value"));return f}
function cy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.L?c+". "+sa(c,0,!0):q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+ra(c,4,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function fy(a,b){if(b)return cy(a,b,a.ga[b]);var c=0;for(b in a.ga)cy(a,b,a.ga[b]),c++;return 0<c}
function ey(a,b){var c;c=void 0===c?0:c;switch(a.L){case 2:b=qa(b,0<c?c:0);break;case 8:b=sa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var ay={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11};
function gy(a){Wx.call(this,a);this.ta=4;this.la=5;this.wa=1048575;this.K=hy(this);this.Ta=hy(this);this.aa=hy(this);this.D=[];this.B=this.Z=this.N=[];iy(this);this.xa=0;jy(this);this.Ba={};ky(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return ly(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return ly(b,a)})}ba(gy,Wx);l=gy.prototype;
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Xb(a,"FDC");this.Xa=Xb(a,"HDC");this.Tc=Xb(a,"FPU");this.G=Xb(a,"Mouse");(a=zd(a,"messages"))&&ky(this,a);this.la=b.I>>2;this.wa=b.N;this.ab=new Vd(this.H,7,"DBG");this.oa=my;80186<=this.H.ca&&(this.oa=my.slice(),this.oa[15]=ny,80286<=this.H.ca&&(this.oa[15]=oy,80386<=this.H.ca&&(this.ta=8)));Al(this,64,function(a){py(d,d.H.sc,a[0])});Al(this,4,function(a){if(a=a[0]){var b=$x(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=qy(d,
b,ry),d.P("dumpSel("+ta(a?a.U:b)+"): %"+q(a?a.Lb:null,d.la)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=sy[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+ta(a.ua&65535)+" off="+ta(a.Ka):"base="+q(a.ua,d.la)+" limit="+ty(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+ta(a.ext&-65296)+
@ -804,23 +804,23 @@ Py(a,g[1],!0);if(v)if(a.aa=v,void 0===g[2])a.P("begin assemble at "+Fy(v)),a.da=
a.P("\tbc [a]\tclear breakpoint at addr [a]"),a.P("\tbl\tlist all breakpoints"),a.P("\tbn [n]\tbreak after [n] instruction(s)");else{var T=K.charAt(1);if("l"==T){var L;L=0+Vz(a,a.B);L+=Vz(a,a.Z);(L+=Vz(a,a.N))||a.P("no breakpoints")}else if("n"==T)a.xa=$x(a,H),a.P("break after "+a.xa+" instruction(s)");else if(void 0===H)a.P("missing breakpoint address");else{var ua={};if("*"!=H&&(ua=Py(a,H,!0,!0),!ua))break a;H=null==ua.Ja?H:ta(ua.Ja);"c"==T?null==ua.Ja?(iy(a),a.P("all breakpoints cleared")):Ey(a,
a.B,ua)||Ey(a,a.Z,ua)||Ey(a,a.N,ua)||a.P("breakpoint missing: "+Fy(ua)):"i"==T?a.P("breakpoint "+(Nc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (input)"):"o"==T?a.P("breakpoint "+(Rc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (output)"):null!=ua.Ja&&(Sy(a,ua,I),"p"==T?a.Gd(a.B,ua):"r"==T?a.Gd(a.Z,ua):"w"==T?a.Gd(a.N,ua):a.P("unknown breakpoint command: "+T))}}}break;case "c":$A(a);break;case "d":a:{var ca=g,xb,za=ca[0],cb=ca[1],Sa=ca[2],rb=ca[3];if("?"==cb){var db="";for(xb in Sb)a.Ba[xb]&&
(db&&(db+=","),db+=xb);db+=",state,symbols";a.P("dump memory commands:");a.P("\tdb [a] [#] dump # bytes at address a");a.P("\tdw [a] [#] dump # words at address a");a.P("\tdd [a] [#] dump # dwords at address a");a.P("\tdh [#] [#] dump # instructions from history");a.P("\tdi [#] dump descriptor info for IDT #");a.P("\tds [#] dump descriptor info for selector #");db.length&&a.P("dump extension commands:\n\t"+db)}else if("state"==cb){var rc=iB(a.pa,!0);rc?"console"==Sa?console.log(rc):
($A(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],tg=df.o;if(void 0!==tg){var ef=df.s;void 0===ef&&(ef=cf.U);var ug=cf.Fd[Ld].l;ug&&(Ld=ug);a.P(uy(tg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var pm=ca[0];if(pm){var Og=a.Sb(Py(a,pm));if(-1===Og)a.P("invalid address: "+pm);else{var nf,
($A(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],tg=df.o;if(void 0!==tg){var ef=df.s;void 0===ef&&(ef=cf.U);var ug=cf.Fd[Ld].l;ug&&(Ld=ug);a.P(uy(tg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var qm=ca[0];if(qm){var Og=a.Sb(Py(a,qm));if(-1===Og)a.P("invalid address: "+qm);else{var nf,
Qa=null;if(80386<=a.H.ca){var of=a.ka,Qa={};Qa.Jk=(Og&-4194304)>>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.ob=of.aa[(Qa.Ti&of.C)>>>of.A];Qa.Aj=Qa.ob.Nd(Qa.Jk);Qa.Kk=(Og&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.pb=of.aa[(Qa.Ui&of.C)>>>of.A];Qa.Bj=Qa.pb.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Og&4095)}if(nf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Og),ve=ve+(" %%"+Uy(nf.Ti,nf.Aj)),ve=
ve+(" %%"+Uy(nf.Ui,nf.Bj,!0)),ve=ve+(" %%"+q(nf.ul));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";dB(a,ca);break a}for(xb in Sb)if(ca[1]==xb){var vt=a.Ba[xb];vt?(ca.shift(),ca.shift(),vt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.lb||"db")}else a.lb=za;if("dh"==za){var wt=cb,xt=Sa,yt="",zt=0,Lc=a.ma,jd=a.O;if(jd.length){var uc=+wt||a.Ya,Pg=+xt||10;isNaN(uc)?uc=Pg:yt="more ";uc>jd.length&&(a.P("note: only "+
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var qm=[];"call"==xt&&(Pg=1E5,qm=["CALL"]);for(void 0!==wt&&a.P(uc+" instructions earlier:");0<Pg&&Lc!=a.ma;){var we=jd[Lc++];if(null==we.U)break;var Qg=hy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),ZB=uc--,At=Xz(a,Qg,"history",ZB);(!qm.length||0<=At.indexOf(qm[0]))&&a.P(At);Qg.Fe&&(Lc+=Qg.Fe,Pg-=Qg.Fe,uc-=Qg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;zt++;Pg--}}zt||(a.P("no "+yt+"history available"),a.Ya=
void 0)}else if("di"==za){ca.shift();var rm=ca[0];if(rm){var Rg=$x(a,rm);if(void 0===Rg||0>Rg||255<Rg)a.P("invalid vector: "+rm);else{var Bt="&",Ct=!!(a.H.qa&1),Dt=!1,Ui=a.H.Pb+(Rg<<(Ct?3:2)),Et=a.H.ja(Ui+0),$B=a.H.ja(Ui+2);Ct&&(Bt="#",a.H.ja(Ui+4)&2048&&(Dt=!0,Et|=a.H.ja(Ui+6)<<16));a.P("dumpIDT("+ta(Rg)+"): "+Bt+q($B,4)+":"+q(Et,Dt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var pf=Py(a,cb);if(pf&&(null!=pf.U||null!=pf.ya)){var Vi=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Vi=$x(a,Sa)>>>0,65536<Vi&&(Vi=65536));for(var Sg="",qf="dd"==za?4:"dw"==za?2:1,Wi=qf*Vi||128,aC=Wi+15>>4||1;aC--&&0<Wi;){var Tg=0,sm=0,Ug,tm="",Ft="",cb=Fy(pf);for(Ug=4==qf?16:a.L;0<Ug&&0<Wi;Ug--){var Xi=a.Ia(pf,1),Tg=Tg|Xi<<(sm++<<3);sm==qf&&(tm+=8==a.L?sa(Tg,3*qf):q(Tg,2*qf),tm+=1==qf?9==Ug?"-":" ":" ",Tg=sm=0);Ft+=32<=Xi&&128>Xi?String.fromCharCode(Xi):".";Wi--}Sg&&(Sg+="\n");Sg+=cb+" "+tm+(Ug?"":" "+Ft)}Sg&&a.P(Sg);a.Ta=pf}}}}}break;case "e":if("else"==g[0])break;var Yi=
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==xt&&(Pg=1E5,rm=["CALL"]);for(void 0!==wt&&a.P(uc+" instructions earlier:");0<Pg&&Lc!=a.ma;){var we=jd[Lc++];if(null==we.U)break;var Qg=hy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),ZB=uc--,At=Xz(a,Qg,"history",ZB);(!rm.length||0<=At.indexOf(rm[0]))&&a.P(At);Qg.Fe&&(Lc+=Qg.Fe,Pg-=Qg.Fe,uc-=Qg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;zt++;Pg--}}zt||(a.P("no "+yt+"history available"),a.Ya=
void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Rg=$x(a,sm);if(void 0===Rg||0>Rg||255<Rg)a.P("invalid vector: "+sm);else{var Bt="&",Ct=!!(a.H.qa&1),Dt=!1,Ui=a.H.Pb+(Rg<<(Ct?3:2)),Et=a.H.ja(Ui+0),$B=a.H.ja(Ui+2);Ct&&(Bt="#",a.H.ja(Ui+4)&2048&&(Dt=!0,Et|=a.H.ja(Ui+6)<<16));a.P("dumpIDT("+ta(Rg)+"): "+Bt+q($B,4)+":"+q(Et,Dt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var pf=Py(a,cb);if(pf&&(null!=pf.U||null!=pf.ya)){var Vi=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Vi=$x(a,Sa)>>>0,65536<Vi&&(Vi=65536));for(var Sg="",qf="dd"==za?4:"dw"==za?2:1,Wi=qf*Vi||128,aC=Wi+15>>4||1;aC--&&0<Wi;){var Tg=0,tm=0,Ug,um="",Ft="",cb=Fy(pf);for(Ug=4==qf?16:a.L;0<Ug&&0<Wi;Ug--){var Xi=a.Ia(pf,1),Tg=Tg|Xi<<(tm++<<3);tm==qf&&(um+=8==a.L?sa(Tg,3*qf):q(Tg,2*qf),um+=1==qf?9==Ug?"-":" ":" ",Tg=tm=0);Ft+=32<=Xi&&128>Xi?String.fromCharCode(Xi):".";Wi--}Sg&&(Sg+="\n");Sg+=cb+" "+um+(Ug?"":" "+Ft)}Sg&&a.P(Sg);a.Ta=pf}}}}}break;case "e":if("else"==g[0])break;var Yi=
1,Gt=255,Ht=a.Ia,It=a.fc;"ew"==g[0]&&(Yi=2,Gt=65535,Ht=a.Yc,It=a.il);var Jt=Yi<<1,Kt=g[1];if(null==Kt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var Zi=Py(a,Kt);if(Zi)for(var $i=2;$i<g.length;$i++){var Vg=by(a,g[$i]);if(void 0===Vg){a.P("unrecognized value: "+g[$i]);break}Vg&~Gt&&a.P("warning: "+q(Vg)+" exceeds "+Yi+"-byte value");var bC=Ht.call(a,Zi);a.P("changing "+Fy(Zi)+" from "+q(bC,Jt,!0)+" to "+q(Vg,Jt,!0));
It.call(a,Zi,Vg,Yi)}}break;case "f":aB(a,g[1]);break;case "g":a:{var Lt=g[1],cC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Lt){var um=Py(a,Lt,!0);if(!um)break a;Sy(a,um,cC);a.Gd(a.B,um,!0)}Nz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var vm;if(a.ea.wb)vm="halting",a.Jb();else{if(Kb(a,!0))break a;vm="already halted"}c||a.P(vm)}break;case "i":if("if"==g[0]){var wm;var Wg=b.substr(2),Wg=Ca(Wg);by(a,Wg)?(c||a.P("true: "+Wg),wm=!0):(c||a.P("false: "+Wg),wm=!1);wm||(d=!1);
break}if("int"==g[0]){var aj;a:switch($x(a,g[1])){case 19:Wk(a,19,a.H.da,!0);a.ha=a.Y;aj=!0;break a;case 33:Wk(a,33,a.H.da,!0);a.ha=a.Y;aj=!0;break a;default:aj=!1}aj||(d=!1);break}var xm=g[1];if(xm&&"?"!=xm){var ym=$x(a,xm);if(void 0!==ym){var dC=Pc(a.ka,ym,1);a.P(ta(ym)+": "+r(dC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var eC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
a.P("\tks\tshow symbol information");else{var zm=0,Mt=a.H.Z.U,Xg=hy(a),Sd=hy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Fy(Sd));10>zm;){for(var kd=null,fC=256;Sd.Ja>>>0<a.H.cg>>>0;){Xg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!fC--)break;Xg.U=Mt;if(kd=gB(a,Xg))break;Xg.U=a.jb(Sd);if(kd=gB(a,Xg,!0)){Mt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Nt=null;if("ks"==eC){var Ot=kd.match(/[0-9A-F]+$/);Ot&&(Nt=cB(a,Ot[0]))}kd=Ba(kd,50)+" ;"+(Nt||"stack="+Fy(Sd));a.P(kd);zm++}zm||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){cB(a,g[1],!0);break}dB(a,g);break;case "m":if("mouse"==g[0]){var Am=g[1],bj=g[2];if(a.G){var Pt=1;"-"==bj.charAt(0)&&(Pt=-1,bj=bj.substr(1));var xe=$x(a,bj,Am);if(void 0!==xe)switch(xe=xe*Pt|0,Am){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Am)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
It.call(a,Zi,Vg,Yi)}}break;case "f":aB(a,g[1]);break;case "g":a:{var Lt=g[1],cC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Lt){var vm=Py(a,Lt,!0);if(!vm)break a;Sy(a,vm,cC);a.Gd(a.B,vm,!0)}Nz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wm;if(a.ea.wb)wm="halting",a.Jb();else{if(Kb(a,!0))break a;wm="already halted"}c||a.P(wm)}break;case "i":if("if"==g[0]){var xm;var Wg=b.substr(2),Wg=Ca(Wg);by(a,Wg)?(c||a.P("true: "+Wg),xm=!0):(c||a.P("false: "+Wg),xm=!1);xm||(d=!1);
break}if("int"==g[0]){var aj;a:switch($x(a,g[1])){case 19:Wk(a,19,a.H.da,!0);a.ha=a.Y;aj=!0;break a;case 33:Wk(a,33,a.H.da,!0);a.ha=a.Y;aj=!0;break a;default:aj=!1}aj||(d=!1);break}var ym=g[1];if(ym&&"?"!=ym){var zm=$x(a,ym);if(void 0!==zm){var dC=Pc(a.ka,zm,1);a.P(ta(zm)+": "+r(dC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var eC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
a.P("\tks\tshow symbol information");else{var Am=0,Mt=a.H.Z.U,Xg=hy(a),Sd=hy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Fy(Sd));10>Am;){for(var kd=null,fC=256;Sd.Ja>>>0<a.H.cg>>>0;){Xg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!fC--)break;Xg.U=Mt;if(kd=gB(a,Xg))break;Xg.U=a.jb(Sd);if(kd=gB(a,Xg,!0)){Mt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Nt=null;if("ks"==eC){var Ot=kd.match(/[0-9A-F]+$/);Ot&&(Nt=cB(a,Ot[0]))}kd=Ba(kd,50)+" ;"+(Nt||"stack="+Fy(Sd));a.P(kd);Am++}Am||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){cB(a,g[1],!0);break}dB(a,g);break;case "m":if("mouse"==g[0]){var Bm=g[1],bj=g[2];if(a.G){var Pt=1;"-"==bj.charAt(0)&&(Pt=-1,bj=bj.substr(1));var xe=$x(a,bj,Bm);if(void 0!==xe)switch(xe=xe*Pt|0,Bm){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Bm)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
fb)ye=1610481663,fb=null;else if("on"==fb)md=!0,fb=null;else if("off"==fb)md=!1,fb=null;else{"keys"==fb&&(fb="key");"kbd"==fb&&(fb="keyboard");for(ld in Sb)if(fb==ld){ye=Sb[ld];md=!!(a.ic&ye);break}if(!ye){a.P("unknown message category: "+fb);break a}}ye&&("on"==g[2]?(a.ic|=ye,md=!0):"off"==g[2]&&(a.ic&=~ye,md=!1))}var gC=0,Yg="";for(ld in Sb)if(!fb||fb==ld){var hC=!!(a.ic&Sb[ld]);if(null===md||md==hC)Yg&&(Yg+=","),++gC%10||(Yg+="\n\t"),"key"==ld&&(ld="keys"),Yg+=ld}void 0===fb&&a.P("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+(Yg||"none"));jy(a)}break;case "o":var Bm=g[1],iC=g[2];if(Bm&&"?"!=Bm){var Cm=$x(a,Bm,"port #"),Dm=$x(a,iC);void 0!==Cm&&void 0!==Dm&&(Tc(a.ka,Cm,1,Dm),a.P(ta(Cm)+": "+r(Dm)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){fB(a,b.substr(5));break}var Qt="pr"==g[0]?1:0,rf=1+Qt;if(a.I)a.P("step in progress");
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+(Yg||"none"));jy(a)}break;case "o":var Cm=g[1],iC=g[2];if(Cm&&"?"!=Cm){var Dm=$x(a,Cm,"port #"),Em=$x(a,iC);void 0!==Dm&&void 0!==Em&&(Tc(a.ka,Dm,1,Em),a.P(ta(Dm)+": "+r(Em)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){fB(a,b.substr(5));break}var Qt="pr"==g[0]?1:0,rf=1+Qt;if(a.I)a.P("step in progress");
else{var cj,Rt=!1,Hb=hy(a,A(a.H),a.H.Z.U);do switch(cj=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Ky(a,Hb,1);cj=!0;break;case 204:case 206:a.I=rf;Ky(a,Hb,1);break;case 205:case 224:case 225:case 226:a.I=rf;Ky(a,Hb,Hb.Hb?4:2);break;case 232:a.I=rf;Ky(a,Hb,Hb.Hb?5:3);break;case 154:a.I=rf;Ky(a,Hb,Hb.Hb?7:5);break;case 255:var St=a.jb(Hb)&14591;if(4351==St||6399==St)a.I=rf,Xz(a,Hb);break;case 243:case 242:Ky(a,Hb,1);Rt=cj=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Rt&&
(a.I=rf,Ky(a,Hb,1))}while(cj);a.I?(a.Gd(a.B,Hb,!0),Nz(a)||(a.pa&&a.pa.ld(),a.I=0)):hB(a,Qt?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}Pz(a,g);break;case "t":hB(a,g[0],g[1]);break;case "u":Qz(a,g[1],g[2],8);break;case "v":if("var"==g[0]){bB(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.34.2 ("+a.H.ca+",RELEASE,NOPREFETCH"+(Ob?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Na());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Zg;void 0!==g[3]&&(Zg=+g[3]);
switch(g[2]){case "int":a.H.T.Se=Zg;break;case "start":a.H.T.wf=Zg;break;case "stop":a.H.T.Ue=Zg;break;default:a.P("unknown cs option");break a}void 0!==Zg&&Bd(a.H);a.P("checksums "+(a.H.ea.He?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Fd(a.H,+g[2])||a.P("warning: using 1x multiplier, previous target not reached"));a.P("target speed: "+(a.H.T.oe.toFixed(2)+"Mhz")+" ("+a.H.T.Kd+"x)");break;default:a.P("unknown option: "+g[1])}else a.P("execution options:"),a.P("\tcs int #\tset checksum cycle interval to #"),
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){fB(a,b.substr(1));break}var Em="commands:",Fm;for(Fm in jB)Em+="\n"+Ba(Fm,7)+jB[Fm];Jg(a)||(Em+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Em);break;default:a.P("unknown command: "+b),d=!1}}}catch(Ut){a.P("debugger error: "+(Ut.stack||Ut.message)),d=!1}return d}
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){fB(a,b.substr(1));break}var Fm="commands:",Gm;for(Gm in jB)Fm+="\n"+Ba(Gm,7)+jB[Gm];Jg(a)||(Fm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Fm);break;default:a.P("unknown command: "+b),d=!1}}}catch(Ut){a.P("debugger error: "+(Ut.stack||Ut.message)),d=!1}return d}
function ly(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Wz(a,b[+d]))return!1;return!0}
var Kz={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Jz=[26,28,40,42,109],jB={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Qy=0,Iy=1,ry=2,Ty=3,Ry=4,Jy=5,eA=18,fA=28,aA=36,jA=80,gA=104,hA=107,Zz=176,Yz="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),

View file

@ -27,256 +27,256 @@
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/macro10.js (C) Jeff Parsons 2012-2017
*/
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ga=0;function da(a){return"jscomp_symbol_"+(a||"")+ga++}
function ha(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ia(this)}});ha=function(){}}function ia(a){var b=0;return ja(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ja(a){ha();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function la(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ma(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
ma("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ma("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var na={mc:0,Eb:1,oc:2,pc:3,qc:4,rc:5,sc:6,tc:7,qb:8,uc:9,Fb:10,vc:11,wc:12,Gb:13,xc:14,yc:15,zc:16,Ac:17,Bc:18,Cc:19,Dc:20,Ec:21,Fc:22,Gc:23,Hc:24,Ic:25,Jc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,pb:65,lc:66,nc:67,Kc:68,E:69,Lc:70,Mc:71,Nc:72,Oc:73,Pc:74,Qc:75,Rc:76,Sc:77,Tc:78,Uc:79,Vc:80,Q:81,Wc:82,Xc:83,Yc:84,Zc:85,$c:86,ad:87,
bd:88,cd:89,Ib:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,dd:97,ed:98,fd:99,d:100,e:101,gd:102,ld:103,md:104,nd:105,od:106,k:107,pd:108,qd:109,n:110,rd:111,p:112,q:113,r:114,sd:115,t:116,ud:117,vd:118,wd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Hb:127};
function ta(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var l,ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ca="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function da(){da=function(){};ca.Symbol||(ca.Symbol=ga)}var ha=0;function ga(a){return"jscomp_symbol_"+(a||"")+ha++}
function ia(){da();var a=ca.Symbol.iterator;a||(a=ca.Symbol.iterator=ca.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&ba(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ja(this)}});ia=function(){}}function ja(a){var b=0;return la(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function la(a){ia();a={next:a};a[ca.Symbol.iterator]=function(){return this};return a}
function ma(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function na(a,b){if(b){var c=ca;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ba(c,a,{configurable:!0,writable:!0,value:b})}}
na("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});na("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ta={mc:0,Eb:1,oc:2,pc:3,qc:4,rc:5,sc:6,tc:7,qb:8,uc:9,Fb:10,vc:11,wc:12,Gb:13,xc:14,yc:15,zc:16,Ac:17,Bc:18,Cc:19,Dc:20,Ec:21,Fc:22,Gc:23,Hc:24,Ic:25,Jc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,pb:65,lc:66,nc:67,Kc:68,E:69,Lc:70,Mc:71,Nc:72,Oc:73,Pc:74,Qc:75,Rc:76,Sc:77,Tc:78,Uc:79,Vc:80,Q:81,Wc:82,Xc:83,Yc:84,Zc:85,$c:86,ad:87,
bd:88,cd:89,Ib:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,dd:97,ed:98,fd:99,d:100,e:101,gd:102,hd:103,jd:104,kd:105,ld:106,k:107,md:108,nd:109,n:110,pd:111,p:112,q:113,r:114,qd:115,t:116,sd:117,td:118,ud:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Hb:127};
function ua(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function ua(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function va(a,b){var c,d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}
function n(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return ua(a,8,b,c?"0o":"")}function wa(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return ua(a,10,b)}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ua(a,16,b,c?"0x":"")}function xa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ya(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function za(a,b){return-1!==a.indexOf(b,a.length-b.length)}
function Aa(a){return a.replace(/[&<>"']/g,function(a){return Ba[a]})}function Ea(a,b){return(a+" ").slice(0,b)}function Fa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ba={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Ga(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
function Ha(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ia(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ja(a,b){var c,d={Z:null,W:null,va:null,ua:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.va=g.load;d.ua=g.exec;if(e=g.bytes)d.Z=e;else if(e=g.words)for(d.Z=Array(2*e.length),f=c=0;c<e.length;c++)d.Z[f++]=e[c]&255,d.Z[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Z=Array(4*e.length),f=c=0;c<e.length;c++)d.Z[f++]=
e[c]&255,d.Z[f++]=e[c]>>8&255,d.Z[f++]=e[c]>>16&255,d.Z[f++]=e[c]>>24&255;else(e=g.data)?d.Ka=e:d.Z=g;d.Z&&(d.Z.length?1==d.Z.length&&(r(d.Z[0]),d=null):(r("Empty resource: "+a),d=null));d.W=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Z=e)}return d}
function Na(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Oa(){if(null==Pa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Pa=a}return Pa}function Qa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ra(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Sa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ta(a){if(!Ua){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ua=c}return Ua[a]}function Va(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Wa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Xa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ya(a){Za.init.push(a)}
function $a(a){if(ab)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function hb(a){!ab&&a?(ab=!0,ib&&jb("init"),kb&&jb("show")):ab=a}function jb(a){Za[a]&&$a(Za[a])}var Ua=null,Za={init:[],show:[],exit:[]},ib=!1,kb=!1,ab=!0,Pa=null;Xa("onload",function(){ib=!0;$a(Za.init)});Xa("onpageshow",function(){kb=!0;$a(Za.show)});Xa(Sa("Opera")||Sa("iOS")?"onunload":"onbeforeunload",function(){$a(Za.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vb=b.comment;this.Nb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Ta=this.id:(this.Ua=this.id.substr(0,a),this.Ta=this.id.substr(a+1));this.A={ready:!1,Na:!1,hb:!1,X:!1,error:!1};this.Xa=null;this.A.error=!1;this.Y=c||0;this.D=this.v=this.G=this.H=this.wa=null;lb.push(this)}function mb(a,b,c){nb[a]&&b&&(nb[a][b]=c)}function ob(){return Date.now()||+new Date}
function r(a){window&&window.alert(a)}function pb(a){var b=!1;window&&(b=window.confirm(a));return b}function qb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<lb.length;b++){var d=lb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function rb(a){if(void 0!==a){var b;for(b=0;b<lb.length;b++)if(lb[b].id===a)return lb[b]}return null}
function sb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<lb.length;d++)if(c)c==lb[d]&&(c=null);else if(!(a!=lb[d].type||b&&lb[d].id.indexOf(b)))return lb[d]}return null}function v(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function tb(a,b){var c=w;b=x(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=v(g))&&h.binding&&a.oa(h.type,h.binding,g,h.value),m=k.length}}}}
function va(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function wa(a,b){var c,d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}
function m(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return va(a,8,b,c?"0o":"")}function xa(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return va(a,10,b)}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return va(a,16,b,c?"0x":"")}function ya(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function za(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Aa(a,b){return-1!==a.indexOf(b,a.length-b.length)}
function Ba(a){return a.replace(/[&<>"']/g,function(a){return Ea[a]})}function Fa(a,b){return(a+" ").slice(0,b)}function Ga(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ea={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Ha(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
function Ia(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ja(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Na(a,b){var c,d={Z:null,W:null,ua:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ua=g.load;d.ta=g.exec;if(e=g.bytes)d.Z=e;else if(e=g.words)for(d.Z=Array(2*e.length),f=c=0;c<e.length;c++)d.Z[f++]=e[c]&255,d.Z[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Z=Array(4*e.length),f=c=0;c<e.length;c++)d.Z[f++]=
e[c]&255,d.Z[f++]=e[c]>>8&255,d.Z[f++]=e[c]>>16&255,d.Z[f++]=e[c]>>24&255;else(e=g.data)?d.Ja=e:d.Z=g;d.Z&&(d.Z.length?1==d.Z.length&&(r(d.Z[0]),d=null):(r("Empty resource: "+a),d=null));d.W=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Z=e)}return d}
function Oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Pa(){if(null==Qa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Qa=a}return Qa}function Ra(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Sa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ta(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ua(a){if(!Va){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Va=c}return Va[a]}function Wa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Xa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Ya(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Za(a){$a.init.push(a)}
function ab(a){if(hb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ib(a){!hb&&a?(hb=!0,jb&&kb("init"),lb&&kb("show")):hb=a}function kb(a){$a[a]&&ab($a[a])}var Va=null,$a={init:[],show:[],exit:[]},jb=!1,lb=!1,hb=!0,Qa=null;Ya("onload",function(){jb=!0;ab($a.init)});Ya("onpageshow",function(){lb=!0;ab($a.show)});Ya(Ta("Opera")||Ta("iOS")?"onunload":"onbeforeunload",function(){ab($a.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vb=b.comment;this.Nb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Ta=this.id:(this.Ua=this.id.substr(0,a),this.Ta=this.id.substr(a+1));this.A={ready:!1,Na:!1,hb:!1,X:!1,error:!1};this.Xa=null;this.A.error=!1;this.Y=c||0;this.D=this.v=this.G=this.H=this.va=null;mb.push(this)}function nb(a,b,c){ob[a]&&b&&(ob[a][b]=c)}function pb(){return Date.now()||+new Date}
function r(a){window&&window.alert(a)}function qb(a){var b=!1;window&&(b=window.confirm(a));return b}function rb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<mb.length;b++){var d=mb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function sb(a){if(void 0!==a){var b;for(b=0;b<mb.length;b++)if(mb[b].id===a)return mb[b]}return null}
function tb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<mb.length;d++)if(c)c==mb[d]&&(c=null);else if(!(a!=mb[d].type||b&&mb[d].id.indexOf(b)))return mb[d]}return null}function v(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function ub(a,b){var c=w;b=x(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),n=0;n<k.length;n++)switch(h=k[n],h){case c+"-binding":(h=v(g))&&h.binding&&a.na(h.type,h.binding,g,h.value),n=k.length}}}}
function x(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function ub(a){for(var b=!0,c=vb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=wb.indexOf(e)&&(f=function(){return function(){ub(a)}}());var g=xb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=sb(d[1],a);if(h)if(g=yb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete vb[a];return b}l=u.prototype;
function vb(a){for(var b=!0,c=wb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=xb.indexOf(e)&&(f=function(){return function(){vb(a)}}());var g=yb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=tb(d[1],a);if(h)if(g=zb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete wb[a];return b}l=u.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.oa=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.wa=this.J[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.da=function(a){this.u(a,this.Ta)}),!0;default:return!1}};l.log=function(){};l.u=function(){};
l.status=function(a){this.u(this.Ta+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function zb(a,b){a.A.error=!0;a.da(b)}function Jb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Kb(a,b){b&&(a.A.ready?b():a.Xa=b);return a.A.ready}function Lb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Xa;a.Xa=null;b&&b()}}function Mb(a,b){a.A.Na&&(b?a.A.hb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Na}
function Nb(a,b){if(a.A.hb)return a.A.Na=!1,a.A.hb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Na=b;return a.A.Na}l.xa=function(){return this.A.X=!0};l.na=function(a,b){b&&(this.A.X=!1);return!0};function Ob(a,b){if(a.D){a===a.D?b|=0:b=b||a.Y;var c=a.D.Y&b;return!!b&&c===b||!!(c&a.D.xb)}return!1}function Pb(a,b,c,d){a.D&&(!0===c||Ob(a,c|0))&&a.D.message(b,d)}
l.na=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.va=this.J[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.da=function(a){this.u(a,this.Ta)}),!0;default:return!1}};l.log=function(){};l.u=function(){};
l.status=function(a){this.u(this.Ta+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Jb(a,b){a.A.error=!0;a.da(b)}function Kb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Lb(a,b){b&&(a.A.ready?b():a.Xa=b);return a.A.ready}function Mb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Xa;a.Xa=null;b&&b()}}function Nb(a,b){a.A.Na&&(b?a.A.hb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Na}
function Ob(a,b){if(a.A.hb)return a.A.Na=!1,a.A.hb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Na=b;return a.A.Na}l.wa=function(){return this.A.X=!0};l.ma=function(a,b){b&&(this.A.X=!1);return!0};function Pb(a,b){if(a.D){a===a.D?b|=0:b=b||a.Y;var c=a.D.Y&b;return!!b&&c===b||!!(c&a.D.xb)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var nb=window?window.PCjs.Machines:{},lb=window?window.PCjs.Components:[],vb=window?window.PCjs.Commands:{},wb=["hold","sleep","wait"],xb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},yb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
var ob=window?window.PCjs.Machines:{},mb=window?window.PCjs.Components:[],wb=window?window.PCjs.Commands:{},xb=["hold","sleep","wait"],yb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},zb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var w="pdp10",Qb="PDPjs",Rb=Math.pow(2,18)-1,Sb=Math.pow(2,18),Tb=Math.pow(2,17)-1,y=Math.pow(2,18)-1,z=Math.pow(2,18),A=Math.pow(2,35)-1,B=Math.pow(2,35),C=Math.pow(2,36)-1,E=Math.pow(2,36),F=Math.pow(2,32),Ub=Math.pow(2,34),Vb=Math.pow(2,36),Wb=Math.pow(2,21),Xb=Math.pow(2,26),Yb=Math.pow(2,23),Zb=Math.pow(2,30),w="pdp10",Qb="PDPjs",$b={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,
var w="pdp10",Rb="PDPjs",Sb=Math.pow(2,18)-1,Tb=Math.pow(2,18),Ub=Math.pow(2,17)-1,y=Math.pow(2,18)-1,z=Math.pow(2,18),A=Math.pow(2,35)-1,C=Math.pow(2,35),D=Math.pow(2,36)-1,E=Math.pow(2,36),F=Math.pow(2,32),Vb=Math.pow(2,34),Wb=Math.pow(2,36),Xb=Math.pow(2,21),Yb=Math.pow(2,26),Zb=Math.pow(2,23),$b=Math.pow(2,30),w="pdp10",Rb="PDPjs",ac={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,
speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function ac(a,b){u.call(this,"Panel",a,512);this.K=this.L=0;this.U=b;this.i=this.I=this.j=this.w=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.T=bc;this.C={};this.b={START:[1,1,!0,!1,this.Xb],STEP:[1,1,!1,!1,this.Yb],ENABLE:[1,1,!1,!1,this.Sb],CONT:[1,1,!0,!1,this.Qb],DEP:[0,0,!0,!1,this.Rb],EXAM:[1,1,!0,!1,this.Tb],LOAD:[1,1,!0,!1,this.Vb],TEST:[0,0,!0,!1,this.Ub]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Wb,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Ob,toggle:this.gc,reset:this.cc,
set:this.fc};Lb(this)}la(ac,u);l=ac.prototype;l.reset=function(a){this.stop();a&&cc(this,this.w=0)};
l.oa=function(a,b,c,d){if(this.H&&this.H.oa(a,b,c,d)||this.v&&this.v.oa(a,b,c,d)||this.D&&this.D.oa(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){dc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){ec(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){dc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){ec(a,b)}}(this,b),!0):u.prototype.oa.call(this,a,b,c,d)}};l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;fc(this);gc(this)};l.xa=function(a,b){if(!b)if(this.U&&hc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.na=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
l.restore=function(a){if(a=a[0])ic(this,this.i=a[0]),cc(this,this.w=a[1]),jc(this,a[2]);return!0};l.cc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}gc(this);return!0};function kc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function fc(a,b){for(var c in a.C)kc(a,c,null!=b?b:a.C[c])}function lc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function gc(a){for(var b in a.b)lc(a,b,a.b[b][1])}
l.Ob=function(a,b,c){if(dc(this,b)){if(c){var d=this;setTimeout(function(){ec(d,b);a&&a()},+c);return!1}ec(this,b)}return!0};l.fc=function(a,b){if("SR"==a)return jc(this,ta(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,lc(this,a,c[1]),!0):!1};l.gc=function(a){return dc(this,a)?(ec(this,a),!0):!1};function dc(a,b){var c=a.b[b];return c?(lc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=mc&&(a.P=b==nc,a.R=b==oc),!0):!1}
function ec(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(lc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Xb=function(a){a||this.v.A.N||(H(this.v,this.i),this.b[pc]&&this.b[pc][1]&&qc(this.v))};l.Yb=function(){};l.Sb=function(a){a||this.v.V()};
l.Qb=function(a){if(!a&&!this.v.A.N)if(this.b[pc]&&this.b[pc][1])qc(this.v);else{if((a=this.D)&&!Mb(a,!0))Nb(a,!0),rc(a,0,null),Nb(a,!1);else try{var b=this.v.Ra(1);0<b&&(sc(this.v,b),tc(this.v,b,!0),uc(this.v,b))}catch(c){"number"!=typeof c&&zb(this.v,c.stack||c.message)}this.stop();this.H&&I(this.H)}};l.Rb=function(a){a&&!this.v.A.N&&(this.P&&vc(this),a=cc(this,this.w=this.j),this.T==bc?wc(this.G,this.i,a):this.v.g(this.i,a))};
l.Tb=function(a){if(!a&&!this.v.A.N){var b;this.R&&vc(this);this.T==bc?b=xc(this.G,this.i):b=this.v.f(this.i);cc(this,this.w=b)}};l.Vb=function(a){a||this.v.A.N||ic(this,this.j)};l.Ub=function(a){a?(this.F=!0,fc(this,!0)):(this.F=!1,fc(this),jc(this,0))};l.Wb=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function vc(a){var b=1,c=a.G.j;a.b[mc]&&a.b[mc][1]||(b=-b);ic(a,a.i&~c|a.i+b&c)}
function ic(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||kc(d,e,f)}}}function cc(a,b){a.I=b%E;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||kc(d,e,f)}}return a.I}function jc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;gc(a);return!0}l.stop=function(){ic(this,this.v.i)};
function hc(){for(var a=x(document,w,"panel"),b=0;b<a.length;b++){var c=a[b],d=v(c),e=rb(d.id);e||(e=new ac(d,!0));tb(e,c)}}var bc=7,nc="DEP",pc="ENABLE",oc="EXAM",mc="STEP";Ya(hc);function yc(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new zc(this);Ec(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Lb(this)}la(yc,u);l=yc.prototype;l.reset=function(){};
l.xa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.na=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,Fc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Gc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Pa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Pa){m=h.size-(e-k);m>f&&(m=f);h.Pa=e-h.B+m;e=k+16384;f-=m;g++;continue}}return Hc(Ic,e,f)}e=new zc(a,e,m,16384,d);Ec(e,a.D,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Jc[d]+" at "+n(b)),!0):Hc(Kc,b,c)}
function xc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function wc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Fc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.jb||e.Lb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
l.Mb=function(a){this.w||(this.D&&Ob(this.D,4)&&Pb(this.D,"memory fault on "+J(this.D,a),!0,!0),this.v.V())};function Hc(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Ic=1,Kc=2;function Lc(a){u.call(this,"Device",a,256)}la(Lc,u);l=Lc.prototype;l.Ha=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Lb(this)};l.xa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.na=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new G(this)).data()};
l.restore=function(){return!0};Ya(function(){for(var a=x(document,w,"device"),b=0;b<a.length;b++){var c,d=a[b];c=v(d);switch(c.type){case "default":c=new Lc(c),tb(c,d)}}});function zc(a,b,c,d,e){this.H=a;this.id=Mc+=2;this.B=b;this.Pa=c;this.size=d||0;this.type=e||Nc;this.G=e==Oc;this.b=null;this.f=this.D=this.nb;this.g=this.w=this.Qa;this.i=this.v=0;Ec(this);this.jb=this.Lb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Pc(this,Qc)}else Pc(this)}l=zc.prototype;l.save=function(){return this.j};
l.restore=function(a){return a&&this.size==a.length?(this.j=a,this.jb=!0):!1};function Pc(a,b){b||(b=Rc);Sc(a,b,void 0);Tc(a,b,void 0)}function Sc(a,b,c){c&&a.i||(a.f=b[0]||a.nb);if(c||void 0===c)a.D=b[0]||a.nb}function Tc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Qa);if(c||void 0===c)a.w=b[1]||a.Qa}l.La=function(a,b){b?this.v++||Tc(this,Uc,!1):this.i++||Sc(this,Uc,!1)};function Vc(a,b){b?--a.v||(a.g=a.G?a.Qa:a.w):--a.i||(a.f=a.D)}
function Ec(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Sc(a,Uc,!1),(a.v=c.v)&&Tc(a,Uc,!1))}l.nb=function(a,b){this.b&&Ob(this.b,32)&&Pb(this.b,"attempt to read invalid address "+J(this.b,b),!0);this.H.Mb(b);return-1};l.Qa=function(a,b,c){this.b&&Ob(this.b,32)&&Pb(this.b,"attempt to write "+J(this.b,a)+" to invalid addresses "+J(this.b,c),!0)};l.ac=function(a){return this.j[a]};l.jc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.jb=!0)};
l.Zb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Wc(c,this.B+a,2,c.M)&&c.V(!1)}return this.D(a,b)};l.ic=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Wc(d,this.B+b,2,d.I)&&d.V(!1)}this.G?this.Qa(a,0,c):this.w(a,b,c)};var Nc=0,Oc=2,Jc=["NONE","RAM","ROM"],Mc=0,Rc=[],Qc=[zc.prototype.ac,zc.prototype.jc],Uc=[zc.prototype.Zb,zc.prototype.ic];
function Xc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ab=0;this.eb=b;this.fa=c;this.bb=Math.round(this.eb/1E4)/100;this.ca=this.bb*this.fa;this.cb=this.Ea=this.ga=this.Va=0;this.A.N=this.A.$a=!1;this.A.aa=a.autoStart;"string"==typeof this.A.aa&&(this.A.aa="true"==this.A.aa);this.A.Ma=!1;this.Ca=this.ia=0;this.Da=+a.csStart;this.pa=+a.csInterval;this.ja=+a.csStop;this.O=[];this.yb=this.dc.bind(this);this.U=this.M=this.R=this.T=this.L=this.Ba=this.P=this.ka=this.fb=this.ba=
0;this.Ja=null;Lb(this)}la(Xc,u);l=Xc.prototype;l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Ja=a.j;for(a=0;a<Yc.length;a++)(b=this.J[Yc[a]])&&this.H.oa(null,Yc[a],b);Lb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.xa=function(a,b){var c=Zc(this.H,"autoStart");null!=c?this.A.aa="true"==c?!0:"false"==c?!1:!!c:null==this.A.aa&&(this.A.aa=!this.D&&void 0===this.J.run);if(!b){if(a){$c(this);if(!this.restore(a))return!1;ad(this)}else this.reset();this.D?(a=this.D,b=this.A.aa,a.Ea=!0,a.u("Type ? for help with PDPjs Debugger commands"),bd(a),b||cd(a),a.sa&&(b=a.sa,a.sa=null,dd(a,b))):this.status("No debugger detected");this.A.aa||this.u("CPU will not be auto-started "+(this.Ja?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.na=function(a){return a?this.save():!0};l.aa=function(){return this.A.N?!0:this.A.aa?(qc(this),!0):!1};l.Bb=function(){return 0};function ad(a){void 0===a.Da&&(a.Da=0);void 0===a.pa&&(a.pa=-1);void 0===a.ja&&(a.ja=-1);a.A.Ma=0<=a.Da&&0<a.pa;a.A.Ma&&(a.Ca=0,a.ia=a.Da-a.U)}function uc(a,b){if(a.A.Ma){var c=!1;a.Ca=a.Ca+a.Bb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.pa,c=!0);0<=a.ja&&a.ja<=ed(a)&&(a.pa=a.ja=-1,ad(a),a.V(),c=!0);c&&a.u(ed(a)+" cycles: checksum="+q(a.Ca))}}
l.oa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.X)a=!0;else{var b=null,c,h=qb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.X);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Xa?" (waiting for notification)":""))+".");a=!1}a&&(d.A.N?d.V():qc(d))},!0;case "speed":return this.J[b]=
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){fd(d,d.fa<<1,!0)},c.textContent=this.ca.toFixed(2)+"Mhz",!0}return!1};function tc(a,b,c){a.U+=b;c&&(a.R=a.T=0)}function gd(a,b){var c=1;b&&1<a.fa&&a.ba&&(c=a.ba/a.bb);a.cb=Math.round(1E3/hd);a.Ea=Math.floor(a.eb/hd*c);b||(a.ga=a.Ea);a.Va=0}function ed(a){return a.U+a.M+a.R-a.T}function $c(a){a.ba=0;a.fb=0;a.U=a.M=a.R=a.T=0;ad(a);fd(a,1)}
function fd(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.ca?b=1:d=!0;a.fa=b;b=a.bb*a.fa;if(a.ca!=b){a.ca=b;b=a.ca.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&id(a.H)}tc(a,a.M);a.M=0;a.L=ob();a.P=0;gd(a);return d}function jd(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function kd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
function sc(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ld(a,b){var c=a.R-=a.T;a.T=0;b&&(a.R=0);return c}
l.dc=function(){if(this.A.N){this.Va>=this.eb&&gd(this,!0);this.ka=0;this.Ba=ob();if(this.P){var a=this.Ba-this.P;a>this.cb&&(this.L+=a,this.L>this.Ba&&(this.L=this.Ba))}try{do{var b=jd(this,this.A.Ma?1:this.Ea);try{this.Ra(b)}catch(e){if("number"!=typeof e)throw e;}b=ld(this,!0);this.ka+=b;this.M+=b;uc(this,b);sc(this,b);this.ga-=b;if(0>=this.ga){this.ga+=this.Ea;++this.fb>=md&&(this.H&&I(this.H,void 0),this.fb=0);break}}while(this.A.N)}catch(e){this.V();this.H&&this.H.stop(ob(),ed(this));zb(this,
e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.yb;this.P=ob();var c=this.cb;this.ka&&(c=Math.round(c*this.ka/this.Ea));var c=c-(this.P-this.Ba),d=this.P-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.U=0,fd(this)));if(0>c||this.ba<this.ca)-1E3>c&&(this.L-=c),c=0;this.Va+=this.ka;this.P+=c;a(b,c)}}};
function qc(a,b){if(!Jb(a))if(a.A.N)a.u(a.toString()+" busy");else{fd(a);a.A.N=!0;a.A.$a=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&id(a.H,!0),a.H.start(a.L,ed(a)));a.D||a.status("Started");setTimeout(a.yb,0)}}l.Ra=function(){return 0};l.V=function(a){var b=!1;if(this.A.N){ld(this);tc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(ob(),ed(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var hd=30,md=15,Yc=["power","reset"];
function nd(a){var b=+a.model||1001;Xc.call(this,a,1E6);this.wb=b;this.Sa=+a.addrReset||0;this.Kb=od.bind(this);this.w=K.bind(this);this.za=null;this.ob=[];this.A.complete=!1}la(nd,Xc);l=nd.prototype;
l.reset=function(){this.status("Model "+this.wb);this.A.N&&this.V();this.Fa=this.Ga=this.b=this.K=0;this.i=this.Aa=this.Sa;this.I=this.sa=-1;this.F=this.j=0;this.gb=[0,0];this.qa=[0,0];this.ha=[0,0];this.ra=[0,0];this.ya=this.i;this.C=0;this.f=this.$b;this.g=this.kc;this.za=null;$c(this);this.A.error=!1;Xc.prototype.reset.call(this)};l.Bb=function(){return 0};
l.save=function(){var a=new G(this);a.set(0,[this.b,this.K,this.Fa,this.Ga,this.i,this.sa,this.I,this.j,this.C,this.Aa,this.ya,this.Sa]);a.set(1,[]);a.set(2,[this.U,this.fa,this.A.aa]);a.set(3,pd(this));a.set(4,kd(this));return a.data()};
l.restore=function(a){var b;b=a[0];ha();ca();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.b=b.next().value;this.K=b.next().value;this.Fa=b.next().value;this.Ga=b.next().value;this.i=b.next().value;this.sa=b.next().value;this.I=b.next().value;this.j=b.next().value;this.C=b.next().value;this.Aa=b.next().value;this.ya=b.next().value;this.Sa=b.next().value;b=a[2];this.U=b[0];fd(this,b[1]);this.A.aa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ob.length;d++){var e=this.ob[d];
if(e.hc===b[c]){d=e;break a}}d=null}d&&(d.next=this.za,this.za=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function qd(a,b){var c=a.i;a.i=(c+b)%Sb;return c}function H(a,b){a.i=b%Sb}function pd(a){var b=[];for(a=a.za;a;)b.push(a.hc),a=a.next;return b}l.$b=function(a){var b=this.G;a=this.ya=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};l.kc=function(a,b){var c=this.G;a=this.ya=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
l.Ra=function(a){this.A.complete=!0;var b=this.D?rd(this.D)?1:this.A.$a?-1:0:0,c=a?this.A.$a?0:1:-1;this.A.$a=!1;this.R=this.T=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(sd(this.D,this.i,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.za||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&sd(this.D,this.i,c)){this.V();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.Fa=this.f(this.b):0<=this.sa?(this.K=this.Ga=this.f(this.sa),this.sa=-1):(this.K=
this.Ga=this.f(this.Aa=this.i),this.i=(this.i+1)%Sb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+(this.Fa=this.f(a))&Rb;a=this.K&4194304?-1:this.Ga/Yb|0;0<=a&&this.Kb(a)}while(0<this.T);return this.A.complete?this.R-this.T:!1===this.A.complete?-1:0};Ya(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new nd(d);tb(d,c)}});function od(a){td[a>>4].call(this,a,a&15)}function M(a){this.w(a)}
function ud(){var a=0,b=this.f(this.b),c=b/Zb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Zb+(d<<24)+(b&16777215);a&&(b=(b+a)%E);this.g(this.b,b)}function vd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Zb&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}}
function wd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Zb&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function xd(a,b){this.g(b,this.f(this.b))}function yd(a,b){this.g(b,this.b)}function zd(a,b){this.g(this.b,this.f(b))}function Ad(a,b){this.g(b,0)}function Bd(a,b){this.g(b,C-this.f(b))}function Cd(a,b){this.g(b,C)}
function Dd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Ed(a,d,c)+(c-(c&y)))}function Xd(a,b){var c=this.f(b);this.g(b,Ed(a,c,0))}function Yd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Ed(a,c,b)+(b-(b&y)))}function Zd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function $d(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Ed(a,d,c)+c)}
function ae(a,b){var c=this.b*z,d=this.f(b);this.g(b,Ed(a,d,c)+c)}function be(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,Ed(a,c,b)+b)}function ce(a,b){var c=this.f(this.b),d=(c&y)*z,c=Ed(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function de(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,ee(a,d,c)+c)}function fe(a,b){var c=this.f(b);this.g(b,ee(a,c,this.b)+this.b)}function ge(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,ee(a,c,b)+b)}
function he(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=y,a){case 256:d+=y*z;break;case 384:d+=c>Tb?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ie(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,ee(a,d,c)+c)}function je(a,b){var c=this.f(b);this.g(b,ee(a,c,0))}function ke(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,ee(a,c,b)+b)}function le(a,b){var c=this.f(this.b),d=c/z|0,c=ee(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function N(a){me[a&7].call(this,a,a>>3&127)}
function ne(){}function oe(){}function K(a){this.u("undefined opcode: "+n(a));qd(this,-1);this.V()}function pe(a){a>A&&(a!=B?a=Vb-a:this.j|=163840);return a}function O(a,b){var c=(a+b)%E;qe.call(this,a,b,c);return c}
function re(a,b,c){var d=!1,e=!1,f=b-b%B;a=a%B+b*B%E;b=this.F=f+Math.trunc(b/2);c>A&&(c=E-c,d=!d);b>A&&(a?(b=C-b,a=E-a):b&&(b=E-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.gb;f[0]=0;f[1]=0;f=this.qa;f[0]=1;f[1]=0;f=this.ha;f[0]=c;f[1]=0;c=this.ra;c[0]=a;for(c[1]=b;0<se(this.ra,this.ha);)te(this.ha,this.ha),te(this.qa,this.qa);do{if(0<=se(this.ra,this.ha)&&(b=this.ra,a=this.ha,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=E,b[1]--),te(this.gb,this.qa),ue(this.ra)))break;ve(this.ha);ve(this.qa)}while(!ue(this.qa));
a=this.gb[0];this.F=this.ra[0];d&&a&&(a=E-a);e&&this.F&&(this.F=E-this.F);return a}
function we(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=E-d,b=!b);e>A&&(e=E-e,b=!b);if(d<z&&e<z)a=d*e,f=0;else{a=d&y;d=Math.trunc(d/z);f=e&y;var e=Math.trunc(e/z),g=a*f,h=d*f+Math.trunc(g/z);f=Math.trunc(h/z);h=(h&y)+a*e;a=h*z+(g&y);f+=Math.trunc(h/z)+d*e}b&&(a?(f=C-f,a=E-a):f&&(f=E-f));if(c)return(f||a>A)&&(f!=C||a<=A)&&(this.j|=131072),a;c=a;b=f;a=b-b%B;b=2*b%E+Math.trunc(c/B);c=a+c%B;d=b-b%B;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b}
function xe(a){a?a==B?this.j|=163840:a=Vb-a:this.j|=98304;return a}function P(a,b){var c=a-b;0>c&&(c+=E);qe.call(this,c,b,a);return c}function qe(a,b,c){a=Math.trunc(a/Ub);b=Math.trunc(b/Ub);c=Math.trunc(c/Ub);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function Q(a,b){return((a/F|0)&(b/F|0))*F+((a&b)>>>0)}function R(a,b){return Q(a,(~(b/F|0)&15)*F+(~b>>>0))}function S(a,b){return(a<B?a:a-E)-(b<B?b:b-B)}
function ye(a,b){return(~((a/F|0)^(b/F|0))&15)*F+(~(a^b)>>>0)}function T(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function U(a){return a<B?a:a-E}function V(a,b){return((a/F|0)^(b/F|0))*F+((a^b)>>>0)}function W(a){return(a/z|0)+(a&y)*z}function ee(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Tb?y*z:0}return b}function Ed(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b}
function te(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=E&&(a[0]%=E,a[1]++)}function se(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function ve(a){a[1]%2&&(a[0]+=E);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ue(a){return!a[0]&&!a[1]}
var td=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},ud,function(a,b){0>this.I&&ud.call(this);vd.call(this,0,b)},vd,function(a,b){0>this.I&&ud.call(this);wd.call(this,0,b)},wd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function bc(a,b){u.call(this,"Panel",a,512);this.K=this.L=0;this.U=b;this.i=this.I=this.j=this.w=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.S=cc;this.C={};this.b={START:[1,1,!0,!1,this.Xb],STEP:[1,1,!1,!1,this.Yb],ENABLE:[1,1,!1,!1,this.Sb],CONT:[1,1,!0,!1,this.Qb],DEP:[0,0,!0,!1,this.Rb],EXAM:[1,1,!0,!1,this.Tb],LOAD:[1,1,!0,!1,this.Vb],TEST:[0,0,!0,!1,this.Ub]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Wb,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Ob,toggle:this.gc,reset:this.cc,
set:this.fc};Mb(this)}ma(bc,u);l=bc.prototype;l.reset=function(a){this.stop();a&&dc(this,this.w=0)};
l.na=function(a,b,c,d){if(this.H&&this.H.na(a,b,c,d)||this.v&&this.v.na(a,b,c,d)||this.D&&this.D.na(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ec(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){fc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){ec(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fc(a,b)}}(this,b),!0):u.prototype.na.call(this,a,b,c,d)}};l.Ga=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;gc(this);hc(this)};l.wa=function(a,b){if(!b)if(this.U&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
l.restore=function(a){if(a=a[0])jc(this,this.i=a[0]),dc(this,this.w=a[1]),kc(this,a[2]);return!0};l.cc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gc(a,b){for(var c in a.C)lc(a,c,null!=b?b:a.C[c])}function mc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}
l.Ob=function(a,b,c){if(ec(this,b)){if(c){var d=this;setTimeout(function(){fc(d,b);a&&a()},+c);return!1}fc(this,b)}return!0};l.fc=function(a,b){if("SR"==a)return kc(this,ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};l.gc=function(a){return ec(this,a)?(fc(this,a),!0):!1};function ec(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=nc&&(a.P=b==oc,a.R=b==pc),!0):!1}
function fc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Xb=function(a){a||this.v.A.N||(H(this.v,this.i),this.b[qc]&&this.b[qc][1]&&rc(this.v))};l.Yb=function(){};l.Sb=function(a){a||this.v.V()};
l.Qb=function(a){if(!a&&!this.v.A.N)if(this.b[qc]&&this.b[qc][1])rc(this.v);else{if((a=this.D)&&!Nb(a,!0))Ob(a,!0),sc(a,0,null),Ob(a,!1);else try{var b=this.v.Ra(1);0<b&&(tc(this.v,b),uc(this.v,b,!0),vc(this.v,b))}catch(c){"number"!=typeof c&&Jb(this.v,c.stack||c.message)}this.stop();this.H&&I(this.H)}};l.Rb=function(a){a&&!this.v.A.N&&(this.P&&wc(this),a=dc(this,this.w=this.j),this.S==cc?xc(this.G,this.i,a):this.v.g(this.i,a))};
l.Tb=function(a){if(!a&&!this.v.A.N){var b;this.R&&wc(this);this.S==cc?b=yc(this.G,this.i):b=this.v.f(this.i);dc(this,this.w=b)}};l.Vb=function(a){a||this.v.A.N||jc(this,this.j)};l.Ub=function(a){a?(this.F=!0,gc(this,!0)):(this.F=!1,gc(this),kc(this,0))};l.Wb=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function wc(a){var b=1,c=a.G.j;a.b[nc]&&a.b[nc][1]||(b=-b);jc(a,a.i&~c|a.i+b&c)}
function jc(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}}function dc(a,b){a.I=b%E;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}return a.I}function kc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;hc(a);return!0}l.stop=function(){jc(this,this.v.i)};
function ic(){for(var a=x(document,w,"panel"),b=0;b<a.length;b++){var c=a[b],d=v(c),e=sb(d.id);e||(e=new bc(d,!0));ub(e,c)}}var cc=7,oc="DEP",qc="ENABLE",pc="EXAM",nc="STEP";Za(ic);function zc(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Ec(this);Fc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Mb(this)}ma(zc,u);l=zc.prototype;l.reset=function(){};
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,Gc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Hc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,n=16384-(e-k);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Pa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Pa){n=h.size-(e-k);n>f&&(n=f);h.Pa=e-h.B+n;e=k+16384;f-=n;g++;continue}}return Ic(Jc,e,f)}e=new Ec(a,e,n,16384,d);Fc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kc[d]+" at "+m(b)),!0):Ic(Lc,b,c)}
function yc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function xc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Gc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.jb||e.Lb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
l.Mb=function(a){this.w||(this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+J(this.D,a),!0,!0),this.v.V())};function Ic(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Jc=1,Lc=2;function Mc(a){u.call(this,"Device",a,256)}ma(Mc,u);l=Mc.prototype;l.Ga=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ma=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new G(this)).data()};
l.restore=function(){return!0};Za(function(){for(var a=x(document,w,"device"),b=0;b<a.length;b++){var c,d=a[b];c=v(d);switch(c.type){case "default":c=new Mc(c),ub(c,d)}}});function Ec(a,b,c,d,e){this.H=a;this.id=Nc+=2;this.B=b;this.Pa=c;this.size=d||0;this.type=e||Oc;this.G=e==Pc;this.b=null;this.f=this.D=this.nb;this.g=this.w=this.Qa;this.i=this.v=0;Fc(this);this.jb=this.Lb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qc(this,Rc)}else Qc(this)}l=Ec.prototype;l.save=function(){return this.j};
l.restore=function(a){return a&&this.size==a.length?(this.j=a,this.jb=!0):!1};function Qc(a,b){b||(b=Sc);Tc(a,b,void 0);Uc(a,b,void 0)}function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.nb);if(c||void 0===c)a.D=b[0]||a.nb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Qa);if(c||void 0===c)a.w=b[1]||a.Qa}l.Ka=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Qa:a.w):--a.i||(a.f=a.D)}
function Fc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}l.nb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+J(this.b,b),!0);this.H.Mb(b);return-1};l.Qa=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+J(this.b,a)+" to invalid addresses "+J(this.b,c),!0)};l.ac=function(a){return this.j[a]};l.jc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.jb=!0)};
l.Zb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Xc(c,this.B+a,2,c.M)&&c.V(!1)}return this.D(a,b)};l.ic=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Xc(d,this.B+b,2,d.I)&&d.V(!1)}this.G?this.Qa(a,0,c):this.w(a,b,c)};var Oc=0,Pc=2,Kc=["NONE","RAM","ROM"],Nc=0,Sc=[],Rc=[Ec.prototype.ac,Ec.prototype.jc],Vc=[Ec.prototype.Zb,Ec.prototype.ic];
function Yc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ab=0;this.eb=b;this.fa=c;this.bb=Math.round(this.eb/1E4)/100;this.ca=this.bb*this.fa;this.cb=this.Da=this.ga=this.Va=0;this.A.N=this.A.$a=!1;this.A.aa=a.autoStart;"string"==typeof this.A.aa&&(this.A.aa="true"==this.A.aa);this.A.Ma=!1;this.Ba=this.ia=0;this.Ca=+a.csStart;this.oa=+a.csInterval;this.ja=+a.csStop;this.O=[];this.yb=this.dc.bind(this);this.U=this.M=this.R=this.S=this.L=this.Aa=this.P=this.ka=this.fb=this.ba=
0;this.Ia=null;Mb(this)}ma(Yc,u);l=Yc.prototype;l.Ga=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Ia=a.j;for(a=0;a<Zc.length;a++)(b=this.J[Zc[a]])&&this.H.na(null,Zc[a],b);Mb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.aa="true"==c?!0:"false"==c?!1:!!c:null==this.A.aa&&(this.A.aa=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.aa,a.Da=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.ra&&(b=a.ra,a.ra=null,ed(a,b,!0))):this.status("No debugger detected");this.A.aa||this.u("CPU will not be auto-started "+(this.Ia?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.ma=function(a){return a?this.save():!0};l.aa=function(){return this.A.N?!0:this.A.aa?(rc(this),!0):!1};l.Bb=function(){return 0};function bd(a){void 0===a.Ca&&(a.Ca=0);void 0===a.oa&&(a.oa=-1);void 0===a.ja&&(a.ja=-1);a.A.Ma=0<=a.Ca&&0<a.oa;a.A.Ma&&(a.Ba=0,a.ia=a.Ca-a.U)}function vc(a,b){if(a.A.Ma){var c=!1;a.Ba=a.Ba+a.Bb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.oa,c=!0);0<=a.ja&&a.ja<=fd(a)&&(a.oa=a.ja=-1,bd(a),a.V(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+q(a.Ba))}}
l.na=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.X)a=!0;else{var b=null,c,h=rb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.X);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Xa?" (waiting for notification)":""))+".");a=!1}a&&(d.A.N?d.V():rc(d))},!0;case "speed":return this.J[b]=
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){gd(d,d.fa<<1,!0)},c.textContent=this.ca.toFixed(2)+"Mhz",!0}return!1};function uc(a,b,c){a.U+=b;c&&(a.R=a.S=0)}function hd(a,b){var c=1;b&&1<a.fa&&a.ba&&(c=a.ba/a.bb);a.cb=Math.round(1E3/id);a.Da=Math.floor(a.eb/id*c);b||(a.ga=a.Da);a.Va=0}function fd(a){return a.U+a.M+a.R-a.S}function ad(a){a.ba=0;a.fb=0;a.U=a.M=a.R=a.S=0;bd(a);gd(a,1)}
function gd(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.ca?b=1:d=!0;a.fa=b;b=a.bb*a.fa;if(a.ca!=b){a.ca=b;b=a.ca.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}uc(a,a.M);a.M=0;a.L=pb();a.P=0;hd(a);return d}function kd(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
function tc(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function md(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c}
l.dc=function(){if(this.A.N){this.Va>=this.eb&&hd(this,!0);this.ka=0;this.Aa=pb();if(this.P){var a=this.Aa-this.P;a>this.cb&&(this.L+=a,this.L>this.Aa&&(this.L=this.Aa))}try{do{var b=kd(this,this.A.Ma?1:this.Da);try{this.Ra(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.ka+=b;this.M+=b;vc(this,b);tc(this,b);this.ga-=b;if(0>=this.ga){this.ga+=this.Da;++this.fb>=nd&&(this.H&&I(this.H,void 0),this.fb=0);break}}while(this.A.N)}catch(e){this.V();this.H&&this.H.stop(pb(),fd(this));Jb(this,
e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.yb;this.P=pb();var c=this.cb;this.ka&&(c=Math.round(c*this.ka/this.Da));var c=c-(this.P-this.Aa),d=this.P-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.U=0,gd(this)));if(0>c||this.ba<this.ca)-1E3>c&&(this.L-=c),c=0;this.Va+=this.ka;this.P+=c;a(b,c)}}};
function rc(a,b){if(!Kb(a))if(a.A.N)a.u(a.toString()+" busy");else{gd(a);a.A.N=!0;a.A.$a=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.yb,0)}}l.Ra=function(){return 0};l.V=function(a){var b=!1;if(this.A.N){md(this);uc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(pb(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"];
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.wb=b;this.Sa=+a.addrReset||0;this.Kb=pd.bind(this);this.w=K.bind(this);this.ya=null;this.ob=[];this.A.complete=!1}ma(od,Yc);l=od.prototype;
l.reset=function(){this.status("Model "+this.wb);this.A.N&&this.V();this.Ea=this.Fa=this.b=this.K=0;this.i=this.za=this.Sa;this.I=this.ra=-1;this.F=this.j=0;this.gb=[0,0];this.pa=[0,0];this.ha=[0,0];this.qa=[0,0];this.xa=this.i;this.C=0;this.f=this.$b;this.g=this.kc;this.ya=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};l.Bb=function(){return 0};
l.save=function(){var a=new G(this);a.set(0,[this.b,this.K,this.Ea,this.Fa,this.i,this.ra,this.I,this.j,this.C,this.za,this.xa,this.Sa]);a.set(1,[]);a.set(2,[this.U,this.fa,this.A.aa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
l.restore=function(a){var b;b=a[0];ia();da();ia();var c=b[Symbol.iterator];b=c?c.call(b):ja(b);this.b=b.next().value;this.K=b.next().value;this.Ea=b.next().value;this.Fa=b.next().value;this.i=b.next().value;this.ra=b.next().value;this.I=b.next().value;this.j=b.next().value;this.C=b.next().value;this.za=b.next().value;this.xa=b.next().value;this.Sa=b.next().value;b=a[2];this.U=b[0];gd(this,b[1]);this.A.aa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ob.length;d++){var e=this.ob[d];
if(e.hc===b[c]){d=e;break a}}d=null}d&&(d.next=this.ya,this.ya=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function rd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function H(a,b){a.i=b%Tb}function qd(a){var b=[];for(a=a.ya;a;)b.push(a.hc),a=a.next;return b}l.$b=function(a){var b=this.G;a=this.xa=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};l.kc=function(a,b){var c=this.G;a=this.xa=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
l.Ra=function(a){this.A.complete=!0;var b=this.D?sd(this.D)?1:this.A.$a?-1:0:0,c=a?this.A.$a?0:1:-1;this.A.$a=!1;this.R=this.S=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(td(this.D,this.i,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ya||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&td(this.D,this.i,c)){this.V();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.Ea=this.f(this.b):0<=this.ra?(this.K=this.Fa=this.f(this.ra),this.ra=-1):(this.K=
this.Fa=this.f(this.za=this.i),this.i=(this.i+1)%Tb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+(this.Ea=this.f(a))&Sb;a=this.K&4194304?-1:this.Fa/Zb|0;0<=a&&this.Kb(a)}while(0<this.S);return this.A.complete?this.R-this.S:!1===this.A.complete?-1:0};Za(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new od(d);ub(d,c)}});function pd(a){ud[a>>4].call(this,a,a&15)}function M(a){this.w(a)}
function vd(){var a=0,b=this.f(this.b),c=b/$b&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*$b+(d<<24)+(b&16777215);a&&(b=(b+a)%E);this.g(this.b,b)}function wd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}}
function xd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function yd(a,b){this.g(b,this.f(this.b))}function zd(a,b){this.g(b,this.b)}function Ad(a,b){this.g(this.b,this.f(b))}function Bd(a,b){this.g(b,0)}function Cd(a,b){this.g(b,D-this.f(b))}function Dd(a,b){this.g(b,D)}
function Ed(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Xd(a,d,c)+(c-(c&y)))}function Yd(a,b){var c=this.f(b);this.g(b,Xd(a,c,0))}function Zd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Xd(a,c,b)+(b-(b&y)))}function $d(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ae(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Xd(a,d,c)+c)}
function be(a,b){var c=this.b*z,d=this.f(b);this.g(b,Xd(a,d,c)+c)}function ce(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,Xd(a,c,b)+b)}function de(a,b){var c=this.f(this.b),d=(c&y)*z,c=Xd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ee(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,fe(a,c,this.b)+this.b)}function he(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}
function ie(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=y,a){case 256:d+=y*z;break;case 384:d+=c>Ub?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function je(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ke(a,b){var c=this.f(b);this.g(b,fe(a,c,0))}function le(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}function me(a,b){var c=this.f(this.b),d=c/z|0,c=fe(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function N(a){ne[a&7].call(this,a,a>>3&127)}
function oe(){}function pe(){}function K(a){this.u("undefined opcode: "+m(a));rd(this,-1);this.V()}function qe(a){a>A&&(a!=C?a=Wb-a:this.j|=163840);return a}function O(a,b){var c=(a+b)%E;re.call(this,a,b,c);return c}
function se(a,b,c){var d=!1,e=!1,f=b-b%C;a=a%C+b*C%E;b=this.F=f+Math.trunc(b/2);c>A&&(c=E-c,d=!d);b>A&&(a?(b=D-b,a=E-a):b&&(b=E-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.gb;f[0]=0;f[1]=0;f=this.pa;f[0]=1;f[1]=0;f=this.ha;f[0]=c;f[1]=0;c=this.qa;c[0]=a;for(c[1]=b;0<te(this.qa,this.ha);)ue(this.ha,this.ha),ue(this.pa,this.pa);do{if(0<=te(this.qa,this.ha)&&(b=this.qa,a=this.ha,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=E,b[1]--),ue(this.gb,this.pa),ve(this.qa)))break;we(this.ha);we(this.pa)}while(!ve(this.pa));
a=this.gb[0];this.F=this.qa[0];d&&a&&(a=E-a);e&&this.F&&(this.F=E-this.F);return a}
function xe(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=E-d,b=!b);e>A&&(e=E-e,b=!b);if(d<z&&e<z)a=d*e,f=0;else{a=d&y;d=Math.trunc(d/z);f=e&y;var e=Math.trunc(e/z),g=a*f,h=d*f+Math.trunc(g/z);f=Math.trunc(h/z);h=(h&y)+a*e;a=h*z+(g&y);f+=Math.trunc(h/z)+d*e}b&&(a?(f=D-f,a=E-a):f&&(f=E-f));if(c)return(f||a>A)&&(f!=D||a<=A)&&(this.j|=131072),a;c=a;b=f;a=b-b%C;b=2*b%E+Math.trunc(c/C);c=a+c%C;d=b-b%C;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b}
function ye(a){a?a==C?this.j|=163840:a=Wb-a:this.j|=98304;return a}function Q(a,b){var c=a-b;0>c&&(c+=E);re.call(this,c,b,a);return c}function re(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/F|0)&(b/F|0))*F+((a&b)>>>0)}function S(a,b){return R(a,(~(b/F|0)&15)*F+(~b>>>0))}function T(a,b){return(a<C?a:a-E)-(b<C?b:b-C)}
function ze(a,b){return(~((a/F|0)^(b/F|0))&15)*F+(~(a^b)>>>0)}function U(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function V(a){return a<C?a:a-E}function W(a,b){return((a/F|0)^(b/F|0))*F+((a^b)>>>0)}function X(a){return(a/z|0)+(a&y)*z}function fe(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Ub?y*z:0}return b}function Xd(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b}
function ue(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=E&&(a[0]%=E,a[1]++)}function te(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function we(a){a[1]%2&&(a[0]+=E);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ve(a){return!a[0]&&!a[1]}
var ud=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},vd,function(a,b){0>this.I&&vd.call(this);wd.call(this,0,b)},wd,function(a,b){0>this.I&&vd.call(this);xd.call(this,0,b)},xd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},xd,yd,zd,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(b,a)},function(a,b){this.g(b,this.b*z)},function(a,b){a=this.f(b);a=(a/z|0)+(a&y)*z;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,xe.call(this,this.f(this.b)))},function(a,b){this.g(b,xe.call(this,this.b))},function(a,b){this.g(this.b,
xe.call(this,this.f(b)))},function(a,b){a=xe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,pe.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,pe.call(this,this.f(b)))},function(a,b){a=pe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,we.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,we.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,we.call(this,this.f(b),this.f(this.b),
!0))},function(a,b){this.g(this.b,this.g(b,we.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,we.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,we.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,we.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,we.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=re.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+
1&15,this.F))},function(a,b){a=re.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=re.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=re.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=re.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=re.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))},
function(a,b){a=this.f(b);b=this.f(b+1&15);b=re.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=re.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>A?-(E-a):a;0<c?(35<=c?(d=0>d?B:0,c=A):(d=d*Math.pow(2,c)%B,c=B-Math.pow(2,35-c)),a<=A?a+c>A&&(this.j|=131072):a-c<=A&&(this.j|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+E:d;
this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%E+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%E:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<B;)a++,c*=2;H(this,this.b)}this.g(b+1&15,a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<B||d>A&&
d<C)this.j|=131072;if(71<=a){if(0<e&&e<B||e>A&&e<C)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%B,c=B-Math.pow(2,70-a),f<=A?e+c>A&&(this.j|=131072):e-c<=A&&(this.j|=131072);e=0;f>A&&(d+=B,e+=B)}else d=d*Math.pow(2,a)%B+Math.trunc(e%B/Math.pow(2,35-a)),e=e*Math.pow(2,a)%B,c=B-Math.pow(2,35-a),f<=A?f+c>A&&(this.j|=131072):(f-c<=A&&(this.j|=131072),d+=B,e+=B)}else-36>=a?(e=-72>=a?d>A?C:0:Math.trunc(d%B/Math.pow(2,-a-35)),d<=A?d=0:(d=C,e+=B)):(c=d>A?E-Math.pow(2,36+a):0,e=Math.trunc(e%B/Math.pow(2,-a))+
d%B*Math.pow(2,35+a)%B,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=B));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%E+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%E+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},yd,zd,Ad,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(b,a)},function(a,b){this.g(b,this.b*z)},function(a,b){a=this.f(b);a=(a/z|0)+(a&y)*z;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/z|0)+(a&y)*z;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,ye.call(this,this.f(this.b)))},function(a,b){this.g(b,ye.call(this,this.b))},function(a,b){this.g(this.b,
ye.call(this,this.f(b)))},function(a,b){a=ye.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,qe.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,qe.call(this,this.f(b)))},function(a,b){a=qe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,xe.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,xe.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b),
!0))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,xe.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,xe.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+
1&15,this.F))},function(a,b){a=se.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))},
function(a,b){a=this.f(b);b=this.f(b+1&15);b=se.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>A?-(E-a):a;0<c?(35<=c?(d=0>d?C:0,c=A):(d=d*Math.pow(2,c)%C,c=C-Math.pow(2,35-c)),a<=A?a+c>A&&(this.j|=131072):a-c<=A&&(this.j|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+E:d;
this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%E+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%E:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<C;)a++,c*=2;H(this,this.b)}this.g(b+1&15,a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<C||d>A&&
d<D)this.j|=131072;if(71<=a){if(0<e&&e<C||e>A&&e<D)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%C,c=C-Math.pow(2,70-a),f<=A?e+c>A&&(this.j|=131072):e-c<=A&&(this.j|=131072);e=0;f>A&&(d+=C,e+=C)}else d=d*Math.pow(2,a)%C+Math.trunc(e%C/Math.pow(2,35-a)),e=e*Math.pow(2,a)%C,c=C-Math.pow(2,35-a),f<=A?f+c>A&&(this.j|=131072):(f-c<=A&&(this.j|=131072),d+=C,e+=C)}else-36>=a?(e=-72>=a?d>A?D:0:Math.trunc(d%C/Math.pow(2,-a-35)),d<=A?d=0:(d=D,e+=C)):(c=d>A?E-Math.pow(2,36+a):0,e=Math.trunc(e%C/Math.pow(2,-a))+
d%C*Math.pow(2,35+a)%C,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=C));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%E+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%E+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%E,d=0):(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%E,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},K,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/z|0,c=c&y;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&y,c=c+1&y,this.A.N||(this.g(b,d*
z+c),a||qd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<B&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=B&&H(this,this.b)},function(a,b){b&1&&(this.j|=4096);if(b&2){var c=this.Fa,c=c/z|0;this.j=this.j&-254049|c&254048;this.j|=c&4096;c&2048?this.j&4096||(this.j|=2048):this.j&=-2049}b&4&&this.V();b&8&&this.w(a);H(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,H(this,this.b))},function(){this.sa=this.b},K,function(a){this.w(a)},function(a,b){a=
z+c),a||rd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a<C&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a>=C&&H(this,this.b)},function(a,b){b&1&&(this.j|=4096);if(b&2){var c=this.Ea,c=c/z|0;this.j=this.j&-254049|c&254048;this.j|=c&4096;c&2048?this.j&4096||(this.j|=2048):this.j&=-2049}b&4&&this.V();b&8&&this.w(a);H(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,H(this,this.b))},function(){this.ra=this.b},K,function(a){this.w(a)},function(a,b){a=
this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=E&&(a-=E);a/z|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=E);(a/z|0)==y&&(this.j|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.j&y)*z+this.i);H(this,this.b+1)},function(a,b){this.g(b,(this.j&y)*z+this.i);H(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,O.call(this,this.f(b),this.f(this.b)))},function(a,
b){this.g(b,O.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,O.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,P.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,P.call(this,this.f(b),this.f(this.b))))},ne,function(a,b){0>S(this.f(b),this.b)&&H(this,
this.i+1)},function(a,b){S(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=S(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=S(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){S(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0<S(this.f(b),this.b)&&H(this,this.i+1)},oe,function(a,b){0>S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){S(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=S(this.f(b),this.f(this.b))&&H(this,this.i+1)},
function(){H(this,this.i+1)},function(a,b){0<=S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){0<S(this.f(b),this.f(this.b))&&H(this,this.i+1)},ne,function(a,b){0>U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))||H(this,this.b)},function(a,b){0>=U(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))&&H(this,this.b)},function(a,b){0<U(this.f(b))&&
H(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){H(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);
0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,O.call(this,this.f(b),1))},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>U(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));U(a)||H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>=U(a)&&H(this,this.b)},function(a,b){this.g(b,O.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),
1));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<U(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,
O.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,P.call(this,this.f(b),1))},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0>U(a)&&H(this,this.b)},function(a,
b){a=this.g(b,P.call(this,this.f(b),1));U(a)||H(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0>=U(a)&&H(this,this.b)},function(a,b){this.g(b,P.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0<U(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));b&&this.g(b,a)},
function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},
function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},Ad,Ad,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,Q(this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q(this.f(b),this.b))},function(a,b){this.g(this.b,Q(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(this.f(b),this.f(this.b))))},
function(a,b){this.g(b,Q(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q(C-this.f(b),this.b))},function(a,b){this.g(this.b,Q(C-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(C-this.f(b),this.f(this.b))))},xd,yd,oe,xd,function(a,b){this.g(b,Q(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,Q(this.f(b),C-this.b))},function(a,b){this.g(this.b,Q(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(this.f(b),C-this.f(this.b))))},ne,ne,zd,zd,function(a,b){this.g(b,
V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(this.b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,V(this.f(b),this.f(this.b))))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(this.b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),this.f(this.b))))},function(a,b){this.g(b,Q(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,
Q(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,Q(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q(C-this.f(b),C-this.f(this.b))))},function(a,b){this.g(b,ye(this.f(b),this.f(this.b)))},function(a,b){this.g(b,ye(this.f(b),this.b))},function(a,b){this.g(this.b,ye(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ye(this.f(b),this.f(this.b))))},Bd,Bd,function(a,b){this.g(this.b,C-this.f(b))},function(a,b){this.g(this.b,this.g(b,C-this.f(b)))},function(a,b){this.g(b,
T(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(C-this.f(b),this.b))},function(a,b){this.g(this.b,T(C-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(C-this.f(b),this.f(this.b))))},function(a,b){this.g(b,C-this.f(this.b))},function(a,b){this.g(b,C-this.b)},function(){this.g(this.b,C-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,C-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),C-this.b))},function(a,b){this.g(this.b,
T(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),C-this.f(this.b))))},function(a,b){this.g(b,T(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,T(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,T(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(C-this.f(b),C-this.f(this.b))))},Cd,Cd,function(){this.g(this.b,C)},function(a,b){this.g(this.b,this.g(b,C))},Dd,Xd,Yd,Zd,$d,ae,be,ce,Dd,Xd,Yd,Zd,$d,ae,be,ce,Dd,Xd,Yd,Zd,$d,ae,be,ce,Dd,Xd,Yd,Zd,
$d,ae,be,ce,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,ne,ne,function(a,b){Q(this.f(b),this.b)||H(this,this.i+1)},function(a,b){Q(this.f(b),this.b*z)||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){Q(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){Q(this.f(b),this.b*z)&&H(this,this.i+1)},oe,oe,function(a,b){Q(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){Q(this.f(b),W(this.f(this.b)))||
H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){Q(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){Q(this.f(b),W(this.f(this.b)))&&H(this,this.i+1)},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(b,R(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)||H(this,this.i+1);this.g(b,R(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)||H(this,this.i+1);this.g(b,R(a,c))},function(a,b){H(this,this.i+1);this.g(b,R(this.f(b),
this.b))},function(a,b){H(this,this.i+1);this.g(b,R(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)&&H(this,this.i+1);this.g(b,R(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)&&H(this,this.i+1);this.g(b,R(a,c))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)||H(this,this.i+1);this.g(b,R(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)||H(this,
this.i+1);this.g(b,R(a,c))},function(a,b){H(this,this.i+1);this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,R(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)&&H(this,this.i+1);this.g(b,R(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)&&H(this,this.i+1);this.g(b,R(a,c))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(b,V(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)||H(this,this.i+1);
this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)&&H(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;Q(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),W(this.f(this.b))))},
function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)&&H(this,this.i+1);this.g(b,V(a,
c))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(b,T(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)||H(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);Q(a,this.b*z)||H(this,this.i+1);this.g(b,T(a,this.b*z))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.b*z))},function(a,b){a=this.f(b);Q(a,this.b)&&H(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);var c=this.b*
z;Q(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);
var c=this.f(this.b);Q(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],me=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},
b){this.g(b,O.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,O.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q.call(this,this.f(b),this.f(this.b))))},oe,function(a,b){0>T(this.f(b),this.b)&&H(this,
this.i+1)},function(a,b){T(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0<T(this.f(b),this.b)&&H(this,this.i+1)},pe,function(a,b){0>T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.f(this.b))&&H(this,this.i+1)},
function(){H(this,this.i+1)},function(a,b){0<=T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){0<T(this.f(b),this.f(this.b))&&H(this,this.i+1)},oe,function(a,b){0>V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))||H(this,this.b)},function(a,b){0>=V(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))&&H(this,this.b)},function(a,b){0<V(this.f(b))&&
H(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){H(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);
0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,O.call(this,this.f(b),1))},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));V(a)||H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>=V(a)&&H(this,this.b)},function(a,b){this.g(b,O.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),
1));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<V(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,
O.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),1))},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>V(a)&&H(this,this.b)},function(a,
b){a=this.g(b,Q.call(this,this.f(b),1));V(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=V(a)&&H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<V(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));b&&this.g(b,a)},
function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},
function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},Bd,Bd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(this.b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),this.f(this.b))))},
function(a,b){this.g(b,R(D-this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(D-this.f(b),this.b))},function(a,b){this.g(this.b,R(D-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(D-this.f(b),this.f(this.b))))},yd,zd,pe,yd,function(a,b){this.g(b,R(this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),D-this.b))},function(a,b){this.g(this.b,R(this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),D-this.f(this.b))))},oe,oe,Ad,Ad,function(a,b){this.g(b,
W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(this.b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,W(this.f(b),this.f(this.b))))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(this.b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,
R(D-this.f(b),D-this.b))},function(a,b){this.g(this.b,R(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(D-this.f(b),D-this.f(this.b))))},function(a,b){this.g(b,ze(this.f(b),this.f(this.b)))},function(a,b){this.g(b,ze(this.f(b),this.b))},function(a,b){this.g(this.b,ze(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ze(this.f(b),this.f(this.b))))},Cd,Cd,function(a,b){this.g(this.b,D-this.f(b))},function(a,b){this.g(this.b,this.g(b,D-this.f(b)))},function(a,b){this.g(b,
U(D-this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(D-this.f(b),this.b))},function(a,b){this.g(this.b,U(D-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(D-this.f(b),this.f(this.b))))},function(a,b){this.g(b,D-this.f(this.b))},function(a,b){this.g(b,D-this.b)},function(){this.g(this.b,D-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,D-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),D-this.b))},function(a,b){this.g(this.b,
U(this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),D-this.f(this.b))))},function(a,b){this.g(b,U(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(b,U(D-this.f(b),D-this.b))},function(a,b){this.g(this.b,U(D-this.f(b),D-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(D-this.f(b),D-this.f(this.b))))},Dd,Dd,function(){this.g(this.b,D)},function(a,b){this.g(this.b,this.g(b,D))},Ed,Yd,Zd,$d,ae,be,ce,de,Ed,Yd,Zd,$d,ae,be,ce,de,Ed,Yd,Zd,$d,ae,be,ce,de,Ed,Yd,Zd,$d,
ae,be,ce,de,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,oe,oe,function(a,b){R(this.f(b),this.b)||H(this,this.i+1)},function(a,b){R(this.f(b),this.b*z)||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){R(this.f(b),this.b*z)&&H(this,this.i+1)},pe,pe,function(a,b){R(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){R(this.f(b),X(this.f(this.b)))||
H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){R(this.f(b),X(this.f(this.b)))&&H(this,this.i+1)},function(a,b){this.g(b,S(this.f(b),this.b))},function(a,b){this.g(b,S(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),
this.b))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){this.g(b,S(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,
this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(b,W(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);
this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*z;R(a,c)&&H(this,this.i+1);this.g(b,W(a,c))},function(a,b){this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),X(this.f(this.b))))},
function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,W(a,
c))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(b,U(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);R(a,this.b*z)||H(this,this.i+1);this.g(b,U(a,this.b*z))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.b*z))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);var c=this.b*
z;R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,U(a,c))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);
var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],ne=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},
function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
function ze(a){u.call(this,"ROM",a,128);this.W=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=xa(this.w);if(this.w){a=this.w;var b=ya(this.F);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ia(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(mb(c.Ua,a,b),(a=Ja(a,b))?(c.b=a.Z,c.W=a.W):c.w=null);Ae(c)})}}la(ze,u);
ze.prototype.Ha=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ae(this)};ze.prototype.xa=function(){this.W&&(this.D&&Be(this.D,this.id,this.C,this.j,this.W),delete this.W);return!0};ze.prototype.na=function(){return!0};
function Ae(a){if(!Kb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)zb(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.j,8,!0)+")");else{var b;b=a.C;if(Gc(a.G,b,a.j,Oc)){var c;for(c=0;c<a.b.length;c++)wc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Lb(a)}}Ya(function(){for(var a=x(document,w,"rom"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new ze(d);tb(d,c)}});
function Ce(a){u.call(this,"RAM",a);this.W=this.Ka=null;this.i=+a.addr;this.j=+a.size;this.va=a.load;this.ua=a.exec;null!=this.va&&(this.va=+this.va);null!=this.ua&&(this.ua=+this.ua);this.w=this.F=!1;this.b=a.file;this.C=xa(this.b);if(this.b){a=this.b;var b=ya(this.C);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ia(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(mb(c.Ua,a,b),(a=Ja(a,b))?(c.Ka=a.Ka,
c.W=a.W,null==c.va&&(c.va=a.va),null==c.ua&&(c.ua=a.ua)):c.b=null);De(c)})}}la(Ce,u);Ce.prototype.Ha=function(a,b,c,d){this.G=b;this.v=c;this.D=d;De(this)};Ce.prototype.xa=function(a,b){this.W&&(this.D&&Be(this.D,this.id,this.i,this.j,this.W),delete this.W);b||this.reset();return!0};Ce.prototype.na=function(){return!0};
function De(a){if(a.G&&(!a.w&&a.j&&(Gc(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Kb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ka)return;Ee(a,a.Ka,a.va,a.ua,a.i)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.F=!0;Lb(a)}}
Ce.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-B&&(g+=E);for(var g=Math.trunc(Math.abs(g))%E,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Ka&&Ee(this,this.Ka,this.va,this.ua,this.i,!this.D)}this.F=!1};
function Ee(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)wc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.V(),f=!1),null!=d&&(a=a.v,a.Sa=d,H(a,d),f?a.A.X?a.A.N||qc(a):a.A.aa=!0:a.D&&a.A.X?a.V()||a.H.A.reset||(bd(a.D),I(a.H,-1)):!1===f&&a.V(),!a.A.N&&a.Ja&&a.Ja.stop()));return g}Ya(function(){for(var a=x(document,w,"ram"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ce(d);tb(d,c)}});
function Fe(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Ge;b&&(void 0===c&&(c="Panel"),(c=sb(c,this.id))&&(b=c.J[b])&&this.oa(null,a,b))}this.b=this.C=null;this.exports={connect:this.Cb,receiveData:this.Ya,receiveStatus:this.bc,setConnection:this.ec}}la(Fe,u);l=Fe.prototype;
l.oa=function(a,b,c){var d=this;switch(b){case Ge:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?na.qb:na.Hb:46==c?b=na.qb:a.ctrlKey&&c>=na.pb&&c<=na.Ib&&(b=c-(na.pb-na.Eb));b&&(a.preventDefault&&a.preventDefault(),d.Ya(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==na.Gb&&(b=na.Fb);d.Ya(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ya(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Ha=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Lb(this)};
l.Cb=function(a){if(!this.b){var b=Zc(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Fa(c[0]);if(d!=this.Ta)return;c=Fa(c[1]);if(this.b=rb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.Ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.xa=function(a,b){if(!b)if(this.Cb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.na=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new G(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ya=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.bc=function(){};l.ec=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Ge="buffer";
Ya(function(){for(var a=x(document,w,"serial"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Fe(d);tb(d,c)}});function He(a){u.call(this,"Debugger",a);this.S=+a.base||16;this.ia=32;this.ka=null;this.ba=["{","}"];this.qa=["[","]"];this.C=0;this.R=!1;this.w=-1;this.j=[];this.K={}}la(He,u);He.prototype.kb=function(){return-1};He.prototype.lb=function(){};
function Ie(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Fa(b.substring(c,f))),c=f+1}}return a}
function Je(a,b,c,d){var e=b;c=c||a.ia;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?e=b%a:b>=2*a&&(e=b%(2*a)));b!=e&&(b=e);return b}
function Ke(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "%":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:0;break;
case "&":e=a;32>=e.ia?f&=g:(f=Je(e,f,0,!0),g=Je(e,g,0,!0),f=((f/Le|0)&(g/Le|0))*Le+((f&g)>>>0));break;case "!":case "|":e=a;32>=e.ia?f|=g:(f=Je(e,f,0,!0),g=Je(e,g,0,!0),f=(f/Le|0|g/Le|0)*Le+((f|g)>>>0));break;case "^^":e=a;32>=e.ia?f|=g:(f=Je(e,f,0,!0),g=Je(e,g,0,!0),f=((f/Le|0)^(g/Le|0))*Le+((f^g)>>>0));break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "><":if(g=35-(g&255))0>f&&(f+=Math.pow(2,36)),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g));break;default:return!1}b.push(Je(a,
f))}return!0}
function Me(a,b,c,d,e,f){var g,h,k,m=!1,p=!1,t=[],D=[],Y=a.S;for(a.S=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Ne(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Me(a,b,p,c-1,a.S,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("-"!=k){m=!0;break}p=!0;continue}if(void 0===p)if(null==a.ka&&f)a.ka=h,p=0;else{m=!0;f=!f;break}t.push(Je(a,p));if(!k)break;D.length&&Oe[k]<Oe[D[D.length-1]]&&Ke(a,t,D,1);D.push(k);a.S="><"==k?10:e;
p=!1}Ke(a,t,D)&&1==t.length||(m=!0);m?!1===f&&a.u("parse error ("+(h||k)+")"):g=t.pop();a.S=Y;return g}function Pe(a,b,c){var d;a.ka=null;b&&("{"!=a.ba[0]&&(b=b.split(a.ba[0]).join("{").split(a.ba[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2><"),b=b.split(/(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Me(a,b,0,b.length,a.S,c),void 0!==d&&!1===c&&Qe(a,null,d));return d}
function Ne(a,b,c,d,e){var f;null!=b?(f=a.kb(b),0<=f?f=a.lb(f):(f=a.K[b],null==f&&(f=ta(e?"-"+b:b,a.S),e=!1)),null!=f?e&&(f=-f):d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return f}
function Qe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;if(8==a.S)d=c+". "+n(c,0,!0);else{d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++)g&&(g=","+g),g=va(d&255,8)+g,d>>=8;d=q(c,0,!0)+" "+c+". "+n(c,0,!0)+" "+("0b"+g)}32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}function Re(a){var b=a.K;a.K={};return b}function Se(a,b){if(b)return Qe(a,b,a.K[b]);var c=0;for(b in a.K)Qe(a,b,a.K[b]),c++;return 0<c}
function J(a,b,c){c=void 0===c?0:c;switch(a.S){case 2:a=va(b,0<c?c:0);break;case 8:a=n(b,0<c?(c+2)/3|0:0);break;case 10:a=wa(b,0<c?Math.ceil(.3*c):0);break;default:a=q(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Oe={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10,"{":11,"}":11},Le=Math.pow(2,32);
function Te(a){He.call(this,a);this.Ea=!1;this.Ca=18;this.ia=36;this.ba=["<",">"];this.qa=[];this.Da=X();this.L=X(0);this.pa=X(0);this.fa=X(0);this.F=[];this.b=this.M=this.I=[];Ue(this);this.T=this.ja=0;this.i=[];this.Aa=void 0;Ve(this);this.D=this;this.ya={};this.Y=this.xb=0;this.U=null;this.P=[];We(this,a.messages);this.sa=a.commands;this.O=0;this.Ja=this.Ba=null;this.C=this.Ga=this.Fa=this.ha=this.za=0;this.ra=this.ga=this.ca=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return dd(b,
a)}):void 0===global[w]&&(global[w]=function(a){return dd(b,a)})}la(Te,He);function Xe(a){a=a&&a.B;null==a&&(a=-1);return a}function X(a,b,c){return{B:void 0===a?null:a,Wa:void 0===b?!1:b,la:!1,S:c}}function Ye(a,b,c,d){a.B=b;a.Wa=c||!1;a.la=!1;a.S=d}function Ze(a){return[a.B,a.Wa,a.la,a.S,a.Za]}function $e(a,b){var c=X(b[0],b[1],b[2]);c.la=b[3];b[4]&&(c.sb=Ie(a,c.Za=b[4]));return c}l=Te.prototype;
l.Ha=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ga=a.j;this.Ca=b.F;(b=Zc(a,"messages"))&&We(this,b);if(a=Zc(a,"commands"))this.sa=a;af(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Xe(bf(d,c,d.pa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var p=b[e];p.type==c?m++||d.u("..."):(c=p.type,m=Jc[c],p&&d.u(q(p.id,8)+" %"+
q(e<<d.G.i,8)+" %"+q(p.B,8)+" "+q(p.Pa,4,!0)+" "+q(p.size,4,!0)+" "+m),c!=Nc&&(c=-1),m=0);a+=16384;e++}}});Lb(this)};
l.oa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ca=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",dd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.j.length-1&&(b=d.j[++d.w])):40==a.keyCode&&(0<d.w?b=d.j[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Wa(c,function(){if(d.ca){var a=d.ca.value;
d.ca.value="";dd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Wa(c,function(a){var b=!1;Mb(d,!0)||(Nb(d,!0),b=rc(d,a?1:0,null),Nb(d,!1));return b}),!0}return!1};function cd(a){if(a.ca){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ca.focus();window&&window.scrollTo(b,c)}}l.Ia=function(a,b){var c=-1,d=Xe(a);-1!==d&&(c=xc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.rb=function(a,b,c){var d=Xe(a);-1!==d&&(wc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),I(this.H,-1))};
function bf(a,b,c){var d,e;c||(c=X());var f=c.B;if(void 0!==b){a:{var g,f=a.ba[0],h=a.ba[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var m=Pe(a,g[1]);if(void 0===m){b=void 0;break a}b=b.replace(f+g[1]+h,null!=m?J(a,m):"undefined")}if(a.qa.length)for(f=a.qa[0],h=a.qa[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,t;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.F.length;h++)if(g=a.F[h].W[f],null!=g){t=g.o;break}null!=t&&(p=X(t));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Pe(a,b)}null!=f&&(f=cf(f,a.Ca),Ye(c,f,d,e));return c}function df(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sb=Ie(a,b.Za=c[2]))}
function cf(a,b){0>a&&a>=-B&&(a+=E);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function ef(a){return n(a/Sb,6)+" "+n(a%Sb,6)}
function We(a,b){a.D=a;a.Y=a.xb=536870916;a.U=null;a.P=[];b=Ie(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in $b){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.Y|=$b[c],a.u(c+" messages enabled"))}}function af(a,b){for(var c in $b)if(16==$b[c]){a.ya[c]=b;break}}l.kb=function(a){return ff.indexOf(a.toUpperCase())};
l.lb=function(a){var b,c=this.v;switch(a){case gf:b=c.i;break;case hf:b=c.K;break;case jf:b=c.b;break;case kf:b=c.j&65536?1:0;break;case lf:b=c.j&32768?1:0;break;case mf:b=c.j&131072?1:0;break;case nf:b=c.j&32?1:0;break;case of:b=c.j&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+J(this,X(this.v.Aa).B));if(!this.U||a!=this.U)if(this.U=a,this.Y&1073741824)this.P.push(a);else{var c;if(this.Y&-2147483648&&this.v&&(c=this.v.A.N)||Mb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,ld(a),a.ga=0,a.H&&I(a.H,void 0))}};
function Ve(a){var b;if(!rd(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.T=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(pf);for(b=0;b<a.i.length;b++)a.i[b]=X();a.T=0;a.u("instruction history buffer allocated")}}function qf(a,b,c){if(!rf(a,c))return!1;qc(a.v,b);return!0}
function rc(a,b,c,d){if(!rf(a))return!1;var e="";null===c&&(e=(c=!a.Ba||"tr"==a.Ba)?"tr":"t");a.C=0;b||rd(a)&&sd(a,a.v.i,0);try{b=jd(a.v,b);var f=a.v.Ra(b);0<f&&(sc(a.v,f),a.C+=f,tc(a.v,f,!0),uc(a.v,f),a.ha++)}catch(g){"number"!=typeof g&&(a.C=0,zb(a.v,g.stack||g.message))}!1!==d&&(a.ga&&a.ga.stop(),I(a.H,-1));bd(a,c||!1,e);return 0<a.C}l.V=function(a){this.v&&this.v.V(a)};function bd(a,b,c){b=void 0===b?!0:b;a.Ea&&(c&&a.u(sf+c),Ye(a.L,a.v.i),b&&1!=a.O?tf(a):uf(a))}
function rf(a,b){var c;(c=!a.v||!Kb(a.v))||(c=a.v,c.A.X?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.N?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Jb(a.v)}l.xa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.na=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ve(this);this.ha=0;this.U=null;this.C=0;Ye(this.L,this.v.i);this.A.N=!1;vf(this);a||bd(this)};
l.save=function(){var a=new G(this);a.set(0,Ze(this.L));a.set(1,Ze(this.pa));a.set(2,Ze(this.fa));a.set(3,[this.j,this.R,this.Y]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=$e(this,a[b++]),this.pa=$e(this,a[b++]),this.fa=$e(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.R=a[b][1],this.Y|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.u("running");this.A.N=!0;this.Fa=a;this.Ga=b};
l.stop=function(a,b){if(this.A.N){this.A.N=!1;this.C=b-this.Ga;if(!this.O){b="stopped";if(this.C){a-=this.Fa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";rd(this)&&(b+=this.ha+" instructions, ",this.ha=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Ob(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}bd(this,!0);cd(this);vf(this,this.v.i);this.U=null}};function rd(a){return 1<a.b.length||!!a.ja}
function sd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Aa==b&&(b=qd(a.v,1)));if(0<c&&(a.ja&&!--a.ja||Wc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ha++,0>d&&(d=a.v.f(b)),0<=d&&(Ye(a.i[a.T],b),++a.T==a.i.length&&(a.T=0)));return!1}
function wf(a,b,c,d){var e=X(b.B),f=a.Ia(b,1),g,h,k,m=0,p=f/Wb|0,t;for(t in xf)if(g=xf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=yf;m=p&3;break;case 32256:k=zf;m=p&7;break;case 29248:k=Af,m=(p&48)>>2|(p&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>Bf&&(k="B");k=Cf[g||0]+k;if(g){if(28700==h)h=f/Xb&127,m=J(a,h,-1);else for(h=f>>23&15,m=J(a,h,-1),p=0;m&&p<Df.length;p++)if(g==Df[p][0]&&(t=Df[p][h])){k=Cf[t];m="";break}k=Ea(k,8)+(m?m+",":"");f&4194304&&(k+="@");k+=J(a,f&262143,-1);(f=f>>18&15)&&(k+="("+J(a,f,
-1)+")")}else k=Ea(k,8)+ef(f);f=k;g="";h=J(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ia(e,1),g+=" "+ef(k),null==e.B)break;while(e.B!=b.B)}h+=Ea(g,16)+f;c&&(h=Ea(h,48)+";"+(c||""),h=a.v.A.Ma?h+("cycles="+ed(a.v).toString()+" cs="+q(a.v.Ca)):h+(null!=d?"="+d.toString():""));return h}
function Ef(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),m=0;m<Df.length;m++)for(var p in Df[m])if(+p&&(h=Df[m][p],k==Cf[h])){k=Cf[Df[m][0]];c&&(c=J(a,+p)+","+c);break}for(var t in xf){g=+t;p=xf[t];switch(g){case 32512:m=yf;break;case 32256:m=zf;break;case 29248:m=Af;break;default:m=[""]}for(var D in p){h=p[D];for(var Y=0;Y<m.length;Y++){var ea=m[Y];"S"==ea&&h>Bf&&(ea="B");if(k==Cf[h]+ea){f=29248!=g?Y:(Y&3)<<1|(Y&12)<<2;f=(D|f<<6)*Wb;break}}if(0<=f)break}if(0<=f)break}}else c&&
(f=g=0);if(0<=f&&c)for(k=c.split(","),t=0;t<k.length;t++)if(h=k[t].trim()){if(1<t){a.u("too many operands: "+c);f=-1;break}D=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!D){a.u("unknown operand: "+h);f=-1;break}h=D[2];if(t||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+J(a,d)):"0";h=Pe(a,h,e);if(void 0==h){f=-1;break}if(!t&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Xb}else{if(0>h||15<h)h&=15;f+=h<<23}else{if(0>h||262143<h)h&=Rb;f+=h;if(h=D[3]){h=Pe(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=
15;f+=h<<18}D[1]&&(f+=4194304)}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Ue(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Xe(c);var d=a.G;Vc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Xe(c),d=a.G,Vc(d.b[c>>>d.i],!0);a.I=["bw"];a.za=0;a.ja=0}
l.La=function(a,b,c){var d=!0;c||fg(this,a,b,!1,!0);if(a!=this.b){var e=Xe(b);if(-1===e)this.u("invalid address: "+J(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].La(e&16383,a==this.I)}}d&&(a.push(b),c?b.la=!0:(hg(this,a,a.length-1,"set"),Ve(this)));return d};function fg(a,b,c,d,e){var f=!1;c=Xe(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Xe(h)&&(!d||h.la)){f=!0;h.la||e||hg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Vc(d.b[c>>>d.i],b==a.I));h.la||Ve(a);break}}return f}
function ig(a,b){for(var c=1;c<b.length;c++)hg(a,b,c);return b.length-1}function hg(a,b,c,d){c=b[c];a.u(b[0]+" "+J(a,c.B)+(d?" "+d:c.Za?' "'+c.Za+'"':""))}function vf(a,b){if(void 0!==b)Wc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.la){if(!fg(a,a.b,c,!0))break;b=0}}}
function Wc(a,b,c,d,e){var f=!1;if(!a.za++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.la)for(var k=Xe(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.la&&(fg(a,d,h,!0),e=!0);if(p=h.sb){for(var f=!1,t=0;t<p.length;t++)if(!jg(a,p[t],!0)){if(p[t].indexOf("if")){f=!0;break}for(var D=t+1;D<p.length&&p[D].indexOf("else");D++)t++;if(D==p.length){f=!0;break}}a.v.A.N||(f=!0)}if(f){e||hg(a,d,g,"hit");break}}}a.za--;return f}
function kg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=n(d,2);Ye(e.Da,d);f+="="+J(e,e.Ia(e.Da),36)+" ";c+=f}if(b){b="";for(d=0;d<ff.length;d++)(e=ff[d]||"")&&(e+="="+J(a,a.lb(d),d>=kf?1:d==hf?23:18)+" "),b+=e;c+="\n"+b}return c}l.zb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Be(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],t=Ga(p,k,a.zb);0>t&&p.splice(-(t+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({td:b,B:c,Pb:d,W:e,tb:f})}function lg(a,b,c){var d=[],e=Xe(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Pb;if(e>=g&&e<g+h){e=Ga(f.tb,[e-g],a.zb);0<=e?mg(a,b,e,d):c&&(e=~e,mg(a,b,e-1,d),mg(a,b,e,d));break}}return d}
function ng(a,b,c){var d=0,e=a.G;b.forEach(function(a,b){wc(e,b,a);null==c&&(c=b);d++});d?(a.u(d+" words loaded at "+J(a,c)+"-"+J(a,c+d-1)),H(a.v,c||0),bd(a)):a.u("no data")}function mg(a,b,c,d){var e={},f=a.F[b].tb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].W[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function og(a,b){var c=bf(a,b[1],a.fa);if(c){var d=b[2];if(void 0==d)a.u("begin assemble at "+J(a,c.B)),a.R=!0,I(a.H);else{var e=b[0].substr(1),f=d.match(/^(['"]?)((\/|http:).*)\1$/);if(f)if(a.ra)a.u("assembly already in progress");else{var g=f[2],h=c.B;a.ra=new pg(g,h,e,a,function(b,c){if(b)a.u("error ("+b+") processing "+(c||g));else try{ng(a,a.ra.G,h)}catch(p){a.u(p.message)}a.ra=null})}else b.shift(),b.shift(),b.shift(),b=Ef(a,d,b.join(""),c.B||0),0<=b&&(a.rb(c,b),a.u(wf(a,c)))}}}
function qg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Se(a)||a.u("no variables"),!0;if(!c[2])return Se(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=Pe(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function rg(a,b,c){var d=null;if(b=bf(a,b)){var e=lg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function tf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Pe(a,b);if(void 0===g)return;b=a.kb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case gf:H(h,
g);Ye(a.L,h.i);break;case kf:f=65536;break;case lf:f=32768;break;case mf:f=131072;break;case nf:f=32;break;case of:f=262144}f&&(h.j=g?h.j|f:h.j&~f);I(a.H);a.u("updated registers:")}}a.u(kg(a,e));c&&(Ye(a.L,d.i),uf(a,J(a,a.L.B)))}}function sg(a,b){b=Fa(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Qe(a,null,c[2].charCodeAt(0)):Pe(a,b,!1)}
function tg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Ne(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Ba=b;Va(c,function(){return Nb(a,!0)&&rc(a,e,d,!1)},function(){a.ga&&a.ga.stop();I(a.H,-1);Nb(a,!1)})}}
function uf(a,b,c,d){if(b=bf(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ne(a,c.substr(1)),null!=c&&(d=c);else{d=bf(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Mb(a,!1)||a.O?a.C:null,g=null!=f?"cycles":null,h=lg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.u(m)}h[3]&&(g=h[3],f=null);h=a.fa;m=b;h.B=m.B;h.Wa=m.Wa;h.la=m.la;h.S=m.S;a.u(wf(a,b,g,f));e-=b.B-k;c++}}}
function jg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(sf+b):(a.R&&(a.u("ended assemble at "+J(a,a.fa.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(Kb(a)&&0<b.length){a.R&&(b="a "+J(a,a.fa.B)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var p=h.charAt(m);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":og(a,g);
break;case "b":a:{var t=g[0],D=g[1],Y=b;if("?"==D)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var ea=t.charAt(1);if("l"==ea){var Fd;Fd=0+ig(a,a.b);Fd+=ig(a,a.M);(Fd+=ig(a,a.I))||a.u("no breakpoints")}else if("n"==ea){var Ff=+D||0;D&&(a.ja=Ff);a.u("break after "+Ff+" instruction(s)")}else if(void 0===
D)a.u("missing breakpoint address");else{var Z=X();if("*"!=D&&(Z=bf(a,D,a.L),!Z))break a;"c"==ea?null==Z.B?(Ue(a),a.u("all breakpoints cleared")):fg(a,a.b,Z)||fg(a,a.M,Z)||fg(a,a.I,Z)||a.u("breakpoint missing: "+J(a,Z.B)):null!=Z.B&&(df(a,Z,Y),"p"==ea?a.La(a.b,Z):"r"==ea?a.La(a.M,Z):"w"==ea?a.La(a.I,Z):a.u("unknown breakpoint command: "+ea))}}}break;case "c":a.wa&&(a.wa.value="");break;case "d":a:{var bb,cb=g[0],oa=g[1],Ca=g[2],mh=g[3];if("?"==oa){var db="";for(bb in $b)a.ya[bb]&&(db&&(db+=","),db+=
bb);db+=",state,symbols";a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");db.length&&a.u("dump extension commands:\n\t"+db)}else if("state"==oa){var Gd=ug(a.H,!0);"console"==Ca?console.log(Gd):(a.wa&&(a.wa.value=""),Gd&&a.u(Gd))}else if("symbols"==oa)for(var Hd=0;Hd<a.F.length;Hd++){var Id=a.F[Hd],eb;for(eb in Id.W)if("."!=eb.charAt(0)){var Gf=Id.W[eb].o;
if(void 0!==Gf){var Hf=Id.W[eb].l;Hf&&(eb=Hf);a.u(J(a,Gf)+" "+eb)}}}else{if("d"==cb){for(bb in $b)if(g[1]==bb){var If=a.ya[bb];If?(g.shift(),g.shift(),If(g)):a.u("no dump registered for "+oa);break a}oa||(cb=a.Ja||"dw")}else a.Ja=cb;if("dh"==cb){var Jf=oa,Kf=Ca,Lf="",Mf=0,ka=a.T,pa=a.i;if(pa.length){var fa=+Jf||a.Aa,Ab=+Kf||10;isNaN(fa)?fa=Ab:Lf="more ";fa>pa.length&&(a.u("note: only "+pa.length+" available"),fa=pa.length);ka-=fa;0>ka&&(null==pa[pa.length-1].B?(fa=ka+fa,ka=0):ka+=pa.length);var Jd=
[];"call"==Kf&&(Ab=1E5,Jd=["CALL"]);for(void 0!==Jf&&a.u(fa+" instructions earlier:");0<Ab&&ka!=a.T;){var Nf=pa[ka++];if(null==Nf.B)break;var Bb=X(Nf.B),nh=fa--,Of=wf(a,Bb,"history",nh);(!Jd.length||0<=Of.indexOf(Jd[0]))&&a.u(Of);Bb.ib&&(ka+=Bb.ib,Ab-=Bb.ib,fa-=Bb.ib);ka>=pa.length&&(ka=0);a.Aa=fa;Mf++;Ab--}}Mf||(a.u("no "+Lf+"history available"),a.Aa=void 0)}else{var fb=bf(a,oa,a.pa);if(fb){var Ka=0,Pf="ds"==cb;if(Ca){if("l"==Ca.charAt(0))Ca=Ca.substr(1)||mh,Ka=Ne(a,Ca);else{var Qf=bf(a,Ca);Qf&&
(Ka=Qf.B-fb.B)}0>Ka&&(Ka=0);65536<Ka&&(Ka=65536)}var oh=a.S;fb.S&&(a.S=fb.S);for(var Rf="db"==cb?1:2,Kd=Ka||32,Ld=1==Rf?1:4,ph=(Kd+Ld-1)/Ld|0||1,La="";ph--&&0<Kd;){for(var qa="",Md="",oa=J(a,fb.B),Sf=Ld;0<Sf--&&0<Kd--;){var Nd=a.Ia(fb,1);Pf?(qa&&(qa+=","),qa+=Nd):(qa+=ef(Nd),qa+=" ");for(var Ac=29,qh=0;1==Rf&&0<=Ac;qh++)var Cb=Nd/Math.pow(2,Ac)%Math.pow(2,7),qa=qa+J(a,Cb,7),Cb=Cb+0,Md=Md+(32>Cb?".":String.fromCharCode(Cb)),Ac=Ac-7}La&&(La+="\n");La=Pf?La+(qa+","):La+(oa+": "+qa+(0>Sf?" "+Md:""))}La&&
a.u(La);a.S=oh}}}}break;case "e":if("else"==g[0])break;var Tf,Uf,Vf=g[0],Od=g[1];"e"==Vf||"ew"==Vf?(Tf=a.Ia,Uf=a.rb):Od=null;if(null==Od)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else{var Bc=bf(a,Od,a.pa);if(Bc)for(var Pd=2;Pd<g.length;Pd++){var Db=Pe(a,g[Pd]);if(void 0===Db)break;Db=cf(Db);a.u("changing "+J(a,Bc.B)+" from "+ef(Tf.call(a,Bc))+" to "+ef(Db));Uf.call(a,Bc,Db,1)}}break;case "g":a:{var Wf=g[1],rh=b;if(void 0!==Wf){var Qd=bf(a,Wf);if(!Qd)break a;df(a,
Qd,rh);a.La(a.b,Qd,!0)}qf(a,!0,c)}break;case "h":a.A.N?(c||a.u("halting"),a.V()):Mb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Rd;var Eb=b.substr(2),Eb=Fa(Eb);Pe(a,Eb)?(c||a.u("true: "+Eb),Rd=!0):(c||a.u("false: "+Eb),Rd=!1);Rd||(d=!1);break}f=!0;break;case "k":var sh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Sd=0,Td=X(),Fb=X();for(a.u("stack trace for "+J(a,Fb.B));10>Sd;){for(var Ma=null,th=
256;65536>Fb.B>>>0;){Td.B=a.Ia(Fb,2);if(null==Fb.B||!th--)break;if(!(Td.B&1)){for(var uh=a,Cc=Td,Xf=null,Gb=Cc.B,Yf=Gb,Ud=1;6>=Ud&&Gb;Ud++){if(2<Ud){Cc.B=Gb;var Dc=wf(uh,Cc);if(0<=Dc.indexOf("JSR")){var Zf=Dc.indexOf(" ");if(Gb+(Dc.indexOf(" ",Zf+1)-Zf-1)/2==Yf){Xf=Dc;break}}}Gb-=2}Cc.B=Yf;if(Ma=Xf)break}}if(!Ma||null==Ma)break;var $f=null;if("ks"==sh){var ag=Ma.match(/[0-9A-F]+$/);ag&&($f=rg(a,ag[0]))}Ma=Ea(Ma,50)+" ;"+($f||"stack="+J(a,Fb.B));a.u(Ma);Sd++}Sd||a.u("no return addresses found")}break;
case "l":if("ln"==g[0]){rg(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,sa=null,L=g[1];"?"==L&&(L=void 0);if(void 0!==L){var Da=0;if("all"==L)Da=1879046143,L=null;else if("on"==L)sa=!0,L=null;else if("off"==L)sa=!1,L=null;else{"keys"==L&&(L="key");"kbd"==L&&(L="keyboard");for(ra in $b)if(L==ra){Da=$b[ra];sa=!!(a.Y&Da);break}if(!Da){a.u("unknown message category: "+L);break a}}if(Da)if("on"==g[2])a.Y|=Da,sa=!0;else if("off"==g[2]&&(a.Y&=~Da,sa=!1,1073741824==Da)){for(var bg=1E3<=a.P.length?a.P.length-
1E3:0;bg<a.P.length;)a.u(a.P[bg++]);a.P=[]}}var vh=0,Hb="";for(ra in $b)if(!L||L==ra){var wh=!!(a.Y&$b[ra]);if(null===sa||sa==wh)Hb&&(Hb+=","),++vh%10||(Hb+="\n\t"),"key"==ra&&(ra="keys"),Hb+=ra}void 0===L&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Hb||"none"));Ve(a)}break;case "p":if("print"==g[0]){sg(a,b.substr(5));break}var cg=g[0],dg="p"==cg?0:"pr"==cg?1:-1;if("?"==g[1]||0>dg)a.u("step commands:"),
a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var eg=X(a.v.i);a.Ia(eg);a.O?(a.La(a.b,eg,!0),qf(a)||(a.H&&id(a.H),a.O=0)):tg(a,dg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}tf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var gb=+g[2];if(2==gb||8==gb||10==gb||16==gb)a.S=gb;else{a.u("invalid base: "+gb);break}}a.u("default base: "+a.S);break;case "cs":var Ib;void 0!==g[3]&&(Ib=+g[3]);switch(g[2]){case "int":a.v.pa=
Ib;break;case "start":a.v.Da=Ib;break;case "stop":a.v.ja=Ib;break;default:a.u("unknown cs option");break a}void 0!==Ib&&ad(a.v);a.u("checksums "+(a.v.A.Ma?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(fd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ca.toFixed(2)+"Mhz")+" ("+a.v.fa+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),
a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":tg(a,g[0],g[1]);break;case "u":uf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){qg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Qb||"PDP10")+" version 1.34.2 ("+a.v.wb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){sg(a,b.substr(1));break}var Vd="commands:",Wd;for(Wd in vg)Vd+="\n"+
Ea(Wd,9)+vg[Wd];rd(a)||(Vd+="\nnote: history disabled if no exec breakpoints");a.u(Vd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(gg){a.u("Debugger "+(gg.stack||gg.message)),d=!1}return d}function dd(a,b,c){b=Ie(a,b,c);for(var d in b)if(!jg(a,b[+d]))return!1;return!0}
var vg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Bf=20,Cf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
gf=0,hf=1,jf=2,kf=3,lf=4,mf=5,nf=6,of=7,ff="PC RA EA C0 C1 OV ND PD".split(" "),wg={},xf=(wg[28672]={0:101},wg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},wg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Bf,9216:53,9472:52,
9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},wg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},wg[29248]={24576:79,24640:80,25088:81,25152:82},wg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},wg),yf=["","I","M","S"],zf=" L E LE A GE N G".split(" "),Af="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Df=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],pf=1E3,sf=">> ";Ya(function(){for(var a=x(document,w,"debugger"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Te(d);tb(d,c)}});
function pg(a,b,c,d,e){this.P=b||0;this.R=c||"";this.i=d;this.done=e;this.u("starting PCjs MACRO-10 Mini-Assembler...");this.v={};this.O={};this.D=[];this.I=[];this.G=[];this.M=this.ma=0;this.ta=this.P;this.F=null;this.b=0;this.C=null;this.J=this.H="";this.j=null;this.ea=this.w="";this.L=0;this.K=a.split(";");xg(this)}
function xg(a){if(a.L==a.K.length)a.done(yg(a));else{var b=a.K[a.L++];a.u("loading "+xa(b));"/"==b[0]&&".MAC"==b.slice(-4)&&(b+=".txt");Ia(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(za(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&zg(a,"unrecognized HTML entity: "+c[0])}a.ea&&(a.ea+="\n");a.ea+=e;setTimeout(function(){xg(a)},0)}})}}
function yg(a){if(0<=a.R.indexOf("p"))return a.u(a.ea),0;var b=Re(a.i);try{var c,d=a.ea.split(/\r?\n/);for(c=0;c<d.length&&(a.ma++,Ag(a,d[c]+"\r\n"));c++);a.b&&a.error("open block from line "+a.v[a.C].ma);for(c=0;c<a.D.length;c++){var e=a.D[c],f=a.v[e];f?Bg(a,f.ea):a.error("missing definition for literal: "+e)}a.I.forEach(function(b){var c=b.ta,d=Cg(a,b.Db,void 0,c);void 0===d?a.error("unable to parse expression: "+b.Db):(d+=a.G[c],a.G[c]=Dg(a,d,c))})}catch(g){a.u(g.message),a.M=-1}a.i.K=b;return a.M}
function Ag(a,b){if(a.b){if(1==a.b){var c=b.indexOf(a.J);0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.F+" definition: "+b)}if(1<a.b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.b++;else if(b[d]==a.H&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.C||"";a.v[d].ea+=b;a.b||(a.C=null,Eg(a,d));b=c}if(a.b)return!0}null!=a.j&&(b=Fg(a,b));var e=b.match(/\s*([A-Z$%._][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i);if(!e||e[4]&&";"!=e[4].slice(0,1))return a.error("failed to parse line: "+
b),!1;c=e[1];d=e[2].toUpperCase();b=e[3].trim();e=e[3]+e[4];if(c){var f=c.slice(-1),c=c.slice(0,-1);":"==f?Gg(a,c,a.ta,!0):(b=d+b,d=f)}if(!d&&!b)return!0;"="==b[0]&&(c=d,b=b.substr(1),d="=");a.F=d;for(var f=b,g=0,h=null,k=0,m=-1;k<f.length;){var p=f[k];"["==p&&(g++||(m=k));k++;if("]"==p&&0>=--g)break}0>g&&a.error("missing bracket(s): "+f);0<=m&&(h=f.substr(m,k-m));for((f=h)&&(b=b.replace(f,Hg(a,Ig,f)));f=Jg(a,b);)b=b.replace(f,f.slice(0,-1));if(!Eg(a,d,b))switch(d){case "=":d=Cg(a,b);void 0===d?a.error("parseExpression("+
b+")"):Gg(a,c,d);break;case Kg:case Lg:case Mg:Fg(a,e);break;case Ng:Og(a,0,b.replace(",",",,"));break;case Pg:case Qg:case Rg:Hg(a,d,b);break;case Sg:case Tg:break;default:c=d,d=b,b=c+d,0<=b.indexOf(",,")||!c&&0>b.indexOf("@")&&0>b.indexOf("(")?c=Cg(a,b,!0):(c=Ef(a.i,c,d,a.ta,!0),0>c&&(c=Ef(a.i,"",b,a.ta,!0),0>c&&(c=void 0))),void 0!==c?Og(a,c,a.i.ka):a.error("unrecognized expression: "+b)}return!0}
function Eg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){b=",";"("==c[0]&&(b+=")",c=c.substr(1));for(var e=[];c;){c=c.trim();var f=Ug(a,c,b);if(!f)break;e.push(f);c=c.substr(f.length+1)}Bg(a,d.ea,d.ub,e);return!0}if("_"!=b[0])return!1;switch(b.substr(1)){case Qg:d.mb||Bg(a,d.ea);break;case Rg:for(;0<d.mb--;)Bg(a,d.ea);break;default:return!1}return!0}
function Bg(a,b,c,d){b=b.split(/\r?\n/);for(var e=0;e<b.length;e++){var f=b[e]+"\r\n";if(c)for(var g=0;g<c.length;g++)for(var h=c[g],k=d[g]||"",m=0;;){var p=f.indexOf(h,m);if(0>p)break;var m=p+1,t=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(t>=f.length)&&f[t].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(t),m=p+k.length)}if(!Ag(a,f))break}}pg.prototype.error=function(a){throw Error("error"+(this.ma?" at line "+wa(this.ma):"")+": "+a);};
function zg(a,b){a.u("warning"+(a.ma?" at line "+wa(a.ma):"")+": "+b)}function Ug(a,b,c){c=void 0===c?",":c;for(var d=0,e=null,f=0;d<b.length;){var g=b[d];if(0<=c.indexOf(g))break;if("<"==g)f++;else if(">"==g&&0>--f){a.error("missing bracket(s): "+b);break}d++}f?0<f&&a.error("extra bracket(s): "+b):e=b.substr(0,d);return e}
function Cg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Cg(a,f[1]):0,void 0!==b&&(f=f[2]?Cg(a,f[2]):0,void 0!==f&&(e=Je(a.i,b,18,!0)*Math.pow(2,18)+Je(a.i,f,18,!0)))):(void 0===d&&(d=a.ta),e=Pe(a.i,b.replace(/\.([^0-9]|$)/g,J(a.i,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
function Jg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="_"+b;a.v[d]&&a.error("reserved symbol redefined: "+c);a.v[d]={name:d,mb:Vg,ub:[],Jb:[],ea:b+": 0",ma:a.ma};a.D.push(d)}return c}
function Fg(a,b){var c=b;null==a.j&&(a.j=a.w="",b&&(a.j=b[0],c=b=b.substr(1)));if(a.j){var d=b.indexOf(a.j);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.j=null);a.w+=b}if(null==a.j){var d=b=0,e,f,g=a.w.length;a.F==Lg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.F==Mg&&(e--,f++));var k=a.w.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Og(a,d),b=0)}b&&Og(a,d)}return c}
function Hg(a,b,c){var d,e,f,g;a.J="<";a.H=">";e=f=[];if(b==Pg){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+" definition: "+c),"";b=d[1];a.v[b]&&a.error("macro redefined: "+b);e=d[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);c=Wg;g=3}else if(b==Ig)a.J="[",a.H="]",b="_"+wa(a.ta,5),a.v[b]&&a.error("literal symbol redefined: "+b),d=[c[0],b+": "+c.substr(1)],c=Xg,a.D.push(b),g=0;else{g=Ug(a,c);if(!g)return a.error("missing "+b+" expression: "+c),"";c=c.substr(g.length+
1);g=g.trim();d=c.match(/\s*(<|)(.*)/i);b="_"+b;c=Cg(a,g)||0;g=1}b=b.toUpperCase();a.b=1;var h="";d[g]&&(a.b=2,h=d[g+1],h.slice(-1)==a.H&&(a.b=0,h=h.slice(0,-1)));a.v[b]={name:b,mb:c,ub:e,Jb:f,ea:h,ma:a.ma};a.b?a.C=b:Eg(a,b);return b}function Gg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&a.O[b]?a.error("label "+b+" redefined"):(a.O[b]={name:b,value:c,ma:a.ma,jd:d,hd:e,kd:f},a.i.K[b]=c)}
function Og(a,b,c){a.G[a.ta]=Dg(a,b);null!=c&&a.I.push({ta:a.ta,Db:c});a.ta++}function Dg(a,b,c){c=void 0===c?a.ta:c;var d=Je(a.i,b||0,36,!0);(b<-B||b>=E)&&zg(a,"truncated value "+n(b)+" at location "+n(c)+" to "+n(d));return d}pg.prototype.u=function(a){this.i?this.i.u(a):console.log(a)};var Kg="ASCII",Lg="ASCIZ",Pg="DEFINE",Qg="IFE",Ig="LITERAL",Sg="PAGE",Rg="REPEAT",Mg="SIXBIT",Tg="SUBTTL",Ng="XWD",Wg=-1,Xg=-2,Vg=-3;
function Yg(a,b,c){u.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;Zg(this,b);this.O=Zc(this,"autoPower",a,6);this.w=0;this.ba=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.U=!1;this.I=this.C=null;this.T=this.P=!1;this.ca=Zc(this,"url")||"";(Math.random()+.1).toString(36);this.i=$g(this);if(this.v=sb("CPU",this.id)){this.D=sb("Debugger",this.id);this.G=new yc({id:this.Ua+".bus",busWidth:this.ba},this.v,this.D);var d,e=qb(this.id);if((this.j=sb("Panel",this.id))&&this.j.wa)for(b=
0;b<e.length;b++)d=e[b],d.da=this.j.da,d.u=this.j.u,d.wa=this.j.wa;this.u(Qb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ha&&d.Ha(this,this.G,this.v,this.D);b=null;d=Zc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Zc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=ah),this.b&&(this.I=new G(this,"1.34.2"),bh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=ch(this))&&(this.K=!0);if(b){var g=this;Ia(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Fa(b):"")+")")):(g.L=b,g.U=!0);Lb(g)})}else Lb(this);this.J.power||(this.O=!0);!c&&this.O&&dh(this,this.Oa)}else r("Unable to find CPU component")}la(Yg,u);function Zg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
function Zc(a,b,c,d){var e=b.toLowerCase(),e=Ta(b)||Ta(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function dh(a,b,c){for(var d=qb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Kb(f)){Kb(f,function(){dh(a,b,c)});return}}b.call(a,c)}
function eh(a,b){var c=new G(a,"1.34.2",fh);if(bh(c)&&gh(c)){var d=c.get(hh),e=b?b.get(hh):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Yg.prototype;
l.Oa=function(a){void 0===a&&(a=this.b||(this.L?ih:ah));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new G(this,"1.34.2");if(a==jh)b=!0;else if(a>ah){if(bh(d,this.L)){this.C=new G(this,"1.34.2",kh);bh(this.C)&&(lh(this,d),a=xh,yh(this.C));this.C.set(hh,Ha());zh(this.C);var e=this.b&&!this.K;if(a==ih||pb("Click OK to restore the previous "+Qb+" machine state, or CANCEL to reset the machine.")){if(c=gh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?bh(d,g):("error"==f&&"no machine state"!=
g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(Ah,""),this.i=null)):this.u(f+": "+g),yh(d),bh(d)?(c=gh(d),e=!0):c=!1))}e&&eh(this,c?d:null)}else a==xh&&d.clear()}else eh(this);delete this.L;delete this.I}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Bh(this,g,d,b,c));b=[d,a,c];a!=jh?dh(this,this.Ab,b):this.Ab(b)}};
function Bh(a,b,c,d,e){if(!b.A.X){b.A.X=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.xa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.U?(c.clear(),a.b=ah,window&&window.location.reload()):a.P=!0,b.xa(null),e=!1),!d&&b.vb){var g=b.vb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.Ab=function(a){var b=a[0],c=0>a[1];a=a[2];this.T=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Bh(this,this.v,b,c,a),I(this,-2),this.v.aa());this.P&&(lh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function lh(a,b){if(pb("There may be a problem with your "+Qb+" machine.\n\nTo help us diagnose it, click OK to send this "+Qb+" machine state to http://www.pcjs.org.")){var c=a.ca;a=a.i||"";b=b.toString();var d={};d.app=Qb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ia("http://www.pcjs.org/api/v1/report",d,!0)}}
function ug(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",fh),h=Ha();g.set(hh,h);f.set(hh,h);f.set(Ch,"1.34.2");f.set(Dh,window?window.location.href:null);f.set(Eh,window?window.navigator.userAgent:"");a.v&&a.v.na&&(c&&(b&&(a.v.A.aa=a.v.A.N),a.v.V()),d=a.v.na(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k<h.length;k++){var m=h[k];m.A.X&&(m.na&&(d=m.na(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.X=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Fh(a,a.i,f.toString()),zh(g)&&zh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Gh),d&&f.clear(h)):e=f.toString());c&&(a.A.X=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
l.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Pb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Pb(this,"Resetting "+this.v.type),this.v.reset());for(var a=qb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Pb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
l.stop=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}I(this,-1)};
function I(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.ab+=d))&&(e.textContent=c.A.N?c.ba.toFixed(2)+"Mhz":"Stopped",c.ab=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.S||8,e=e||0,e=8==f?n(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.ya);ic(a,a.i);cc(a,a.w)}}
l.oa=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.X?ug(d,!1,!0):dh(d,d.Oa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.X&&!d.w)if(d.b&&!d.F){var a=pb("Click OK to save changes to this "+Qb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ug(d,a,!0);!a&&d.M?window&&window.location.reload():d.Oa(ah)}else d.reset(),d.v&&!d.D&&d.v.aa()},!0;case "save":if(za(Na(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=$g(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=ug(d,b);b?Fh(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function $g(a,b){var c=a.i;c||((c=Qa(Ah),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=Hh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function Hh(a,b){a.i=null;b=Ia(Na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(Ah,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function ch(a){var b=null;a.i&&(b=Na()+"/api/v1/user?req=load&user="+a.i+"&state="+Ih(a,"1.34.2"));return b}
function Fh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ih(a,"1.34.2");d.data=c;b=Ia(Na()+"/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.da("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.da(c),Ra(Ah,""),a.i=null)}}
function id(a,b){if(a.wa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.wa.focus();!b&&window&&window.scrollTo(c,d)}}var kh="failsafe",fh="validate",hh="timestamp",Ch="version",Dh="url",Eh="browser",Ah="user",jh=-1,ah=0,ih=1,xh=2,Gh=3;Ya(function(){for(var a=x(document,w+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=v(c),c=x(c,w,"computer"),e=0;e<c.length;e++){var f=c[e],g=v(f),g=new Yg(g,d,!0);tb(g,f);g.O&&dh(g,g.Oa)}});
Za.show.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=sb("Computer",c.id))&&c.T&&!c.A.X&&c.Oa(jh)}});Za.exit.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=sb("Computer",c.id))&&c.A.X&&ug(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Ih(a,b,c);yh(this,a.Nb)}l=G.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function bh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Oa()&&(b=Qa(a.key))?(a.i=b,a.v=!0):!1}function gh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){r(c.message||c),b=!1}return b}function zh(a){var b=!0;if(Oa()){var c=JSON.stringify(a.b);Ra(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function yh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}l.clear=function(a){yh(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 Ih(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Jh=0;
function Kh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ia(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):Lh(k,a,b,c,d,e,f,g)})}
function Lh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(mb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Mh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Mh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ia(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Mh(a,b,c)}})}else c(a,null)}
function Nh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Aa(a))}function g(a){f("Error: "+a);m&&(--Jh||hb(!0));m=!1}var h,k,m=!0;Jh++;nb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));t.appendChild(D)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Kh(d,null,a,null,!1,f,function(a,e){e?(mb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Jh||hb(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Jh||
hb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Kh(c,b,a,e,!0,f,p):Lh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(Y){g(Y.message)}return m}window.embedPDP10=function(a,b,c,d){hb(!1);return Nh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){hb(!1);return Nh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return sb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!vb[a]){for(var c=!0,d=vb,e=a,f=b.length,g=[],h=[],k="",m=null,p=0;p<f;p++){var t=b[p];if('"'==t||"'"==t)m&&t!=m?k+=t:(m?m=null:m=t,k&&(h.push(k),k=""));else{if(!m){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;ub(a)||(c=!1)}return c};window.enableEvents=hb;window.sendEvent=jb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
function Ae(a){u.call(this,"ROM",a,128);this.W=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=ya(this.w);if(this.w){a=this.w;var b=za(this.F);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(nb(c.Ua,a,b),(a=Na(a,b))?(c.b=a.Z,c.W=a.W):c.w=null);Be(c)})}}ma(Ae,u);
Ae.prototype.Ga=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Be(this)};Ae.prototype.wa=function(){this.W&&(this.D&&Ce(this.D,this.id,this.C,this.j,this.W),delete this.W);return!0};Ae.prototype.ma=function(){return!0};
function Be(a){if(!Lb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)Jb(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.j,8,!0)+")");else{var b;b=a.C;if(Hc(a.G,b,a.j,Pc)){var c;for(c=0;c<a.b.length;c++)xc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Mb(a)}}Za(function(){for(var a=x(document,w,"rom"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ae(d);ub(d,c)}});
function De(a){u.call(this,"RAM",a);this.W=this.Ja=null;this.i=+a.addr;this.j=+a.size;this.ua=a.load;this.ta=a.exec;null!=this.ua&&(this.ua=+this.ua);null!=this.ta&&(this.ta=+this.ta);this.w=this.F=!1;this.b=a.file;this.C=ya(this.b);if(this.b){a=this.b;var b=za(this.C);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(nb(c.Ua,a,b),(a=Na(a,b))?(c.Ja=a.Ja,
c.W=a.W,null==c.ua&&(c.ua=a.ua),null==c.ta&&(c.ta=a.ta)):c.b=null);Ee(c)})}}ma(De,u);De.prototype.Ga=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ee(this)};De.prototype.wa=function(a,b){this.W&&(this.D&&Ce(this.D,this.id,this.i,this.j,this.W),delete this.W);b||this.reset();return!0};De.prototype.ma=function(){return!0};
function Ee(a){if(a.G&&(!a.w&&a.j&&(Hc(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Lb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ja)return;Fe(a,a.Ja,a.ua,a.ta,a.i)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
De.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-C&&(g+=E);for(var g=Math.trunc(Math.abs(g))%E,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Ja&&Fe(this,this.Ja,this.ua,this.ta,this.i,!this.D)}this.F=!1};
function Fe(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)xc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.V(),f=!1),null!=d&&(a=a.v,a.Sa=d,H(a,d),f?a.A.X?a.A.N||rc(a):a.A.aa=!0:a.D&&a.A.X?a.V()||a.H.A.reset||(cd(a.D),I(a.H,-1)):!1===f&&a.V(),!a.A.N&&a.Ia&&a.Ia.stop()));return g}Za(function(){for(var a=x(document,w,"ram"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new De(d);ub(d,c)}});
function Ge(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=He;b&&(void 0===c&&(c="Panel"),(c=tb(c,this.id))&&(b=c.J[b])&&this.na(null,a,b))}this.b=this.C=null;this.exports={connect:this.Cb,receiveData:this.Ya,receiveStatus:this.bc,setConnection:this.ec}}ma(Ge,u);l=Ge.prototype;
l.na=function(a,b,c){var d=this;switch(b){case He:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ta.qb:ta.Hb:46==c?b=ta.qb:a.ctrlKey&&c>=ta.pb&&c<=ta.Ib&&(b=c-(ta.pb-ta.Eb));b&&(a.preventDefault&&a.preventDefault(),d.Ya(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ta.Gb&&(b=ta.Fb);d.Ya(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ya(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Ga=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)};
l.Cb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ga(c[0]);if(d!=this.Ta)return;c=Ga(c[1]);if(this.b=sb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.Ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.wa=function(a,b){if(!b)if(this.Cb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.ma=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new G(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ya=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.bc=function(){};l.ec=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var He="buffer";
Za(function(){for(var a=x(document,w,"serial"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ge(d);ub(d,c)}});function Ie(a){u.call(this,"Debugger",a);this.T=+a.base||16;this.ia=32;this.ka=null;this.ba=["{","}"];this.pa=["[","]"];this.C=0;this.R=!1;this.w=-1;this.j=[];this.K={}}ma(Ie,u);Ie.prototype.kb=function(){return-1};Ie.prototype.lb=function(){};
function Je(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ga(b.substring(c,f))),c=f+1}}return a}function Ke(a,b,c){if(32>=a.ia)return b|c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)^(c/Le|0))*Le+((b^c)>>>0)}
function Y(a,b,c,d){var e=b;c=c||a.ia;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?e=b%a:b>=2*a&&(e=b%(2*a)));b!=e&&(b=e);return b}
function Me(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "%":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:0;break;
case "&":e=a;32>=e.ia?f&=g:(f=Y(e,f,0,!0),g=Y(e,g,0,!0),f=((f/Le|0)&(g/Le|0))*Le+((f&g)>>>0));break;case "!":case "|":e=a;32>=e.ia?f|=g:(f=Y(e,f,0,!0),g=Y(e,g,0,!0),f=(f/Le|0|g/Le|0)*Le+((f|g)>>>0));break;case "^!":f=Ke(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=Y(a,f,0,!0),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g)));break;default:return!1}b.push(Y(a,f))}return!0}
function Ne(a,b,c,d,e,f){var g,h,k,n=!1,p=0,t=[],B=[],P=a.T;for(a.T=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Oe(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Ne(a,b,p,c-1,a.T,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("~"==k||"^-"==k){p=1;continue}if("-"==k){p=-1;continue}n=!0;break}if(void 0===p)if(null==a.ka&&f)a.ka=h,p=0;else{n=!0;f=!f;break}t.push(Y(a,p));if(!k)break;B.length&&Pe[k]<Pe[B[B.length-1]]&&Me(a,t,B,
1);B.push(k);a.T="^_"==k?10:e;p=0}Me(a,t,B)&&1==t.length||(n=!0);n?!1===f&&a.u("parse error ("+(h||k)+")"):g=t.pop();a.T=P;return g}function Qe(a,b,c){var d;a.ka=null;b&&("{"!=a.ba[0]&&(b=b.split(a.ba[0]).join("{").split(a.ba[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_"),b=b.split(/(\{|}|\|\||&&|\||\^!|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Ne(a,b,0,b.length,a.T,c),void 0!==d&&!1===c&&Re(a,null,d));return d}
function Oe(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.kb(b),0<=f?f=a.lb(f):(f=a.K[b],null==f&&(0>e&&(b="-"+b,e=0),f=ua(b,a.T))),null!=f?0>e?f=-f:0<e&&(f=Ke(a,f,-1)):d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return f}
function Re(a,b,c){var d,e=!1;if(void 0!==c){e=!0;if(8==a.T)d=c+". "+m(c,0,!0);else{d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++)g&&(g=","+g),g=wa(d&255,8)+g,d>>=8;d=q(c,0,!0)+" "+c+". "+m(c,0,!0)+" "+("0b"+g)}32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}function Se(a){var b=a.K;a.K={};return b}function Te(a,b){if(b)return Re(a,b,a.K[b]);var c=0;for(b in a.K)Re(a,b,a.K[b]),c++;return 0<c}
function J(a,b,c){c=void 0===c?0:c;switch(a.T){case 2:a=wa(b,0<c?c:0);break;case 8:a=m(b,0<c?(c+2)/3|0:0);break;case 10:a=xa(b,0<c?Math.ceil(.3*c):0);break;default:a=q(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Pe={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11},Le=Math.pow(2,32);
function Ue(a){Ie.call(this,a);this.Da=!1;this.Ba=18;this.ia=36;this.ba=["<",">"];this.pa=[];this.Ca=Z();this.L=Z(0);this.oa=Z(0);this.fa=Z(0);this.F=[];this.b=this.M=this.I=[];Ve(this);this.S=this.ja=0;this.i=[];this.za=void 0;We(this);this.D=this;this.xa={};this.Y=this.xb=0;this.U=null;this.P=[];Xe(this,a.messages);this.ra=a.commands;this.O=0;this.Ia=this.Aa=null;this.C=this.Fa=this.Ea=this.ha=this.ya=0;this.qa=this.ga=this.ca=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return ed(b,
a)}):void 0===global[w]&&(global[w]=function(a){return ed(b,a)})}ma(Ue,Ie);function Ye(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,Wa:void 0===b?!1:b,la:!1,T:c}}function Ze(a,b,c,d){a.B=b;a.Wa=c||!1;a.la=!1;a.T=d}function $e(a){return[a.B,a.Wa,a.la,a.T,a.Za]}function af(a,b){var c=Z(b[0],b[1],b[2]);c.la=b[3];b[4]&&(c.sb=Je(a,c.Za=b[4]));return c}l=Ue.prototype;
l.Ga=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ga=a.j;this.Ba=b.F;(b=$c(a,"messages"))&&Xe(this,b);if(a=$c(a,"commands"))this.ra=a;bf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Ye(cf(d,c,d.oa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.u("..."):(c=p.type,n=Kc[c],p&&d.u(q(p.id,8)+" %"+
q(e<<d.G.i,8)+" %"+q(p.B,8)+" "+q(p.Pa,4,!0)+" "+q(p.size,4,!0)+" "+n),c!=Oc&&(c=-1),n=0);a+=16384;e++}}});Mb(this)};
l.na=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ca=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ed(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.j.length-1&&(b=d.j[++d.w])):40==a.keyCode&&(0<d.w?b=d.j[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Xa(c,function(){if(d.ca){var a=d.ca.value;
d.ca.value="";ed(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Xa(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=sc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function dd(a){if(a.ca){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ca.focus();window&&window.scrollTo(b,c)}}l.Ha=function(a,b){var c=-1,d=Ye(a);-1!==d&&(c=yc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.rb=function(a,b,c){var d=Ye(a);-1!==d&&(xc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),I(this.H,-1))};
function cf(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.ba[0],h=a.ba[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var n=Qe(a,g[1]);if(void 0===n){b=void 0;break a}b=b.replace(f+g[1]+h,null!=n?J(a,n):"undefined")}if(a.pa.length)for(f=a.pa[0],h=a.pa[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,t;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.F.length;h++)if(g=a.F[h].W[f],null!=g){t=g.o;break}null!=t&&(p=Z(t));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Qe(a,b)}null!=f&&(f=df(f,a.Ba),Ze(c,f,d,e));return c}function ef(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sb=Je(a,b.Za=c[2]))}
function df(a,b){0>a&&a>=-C&&(a+=E);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function ff(a){return m(a/Tb,6)+" "+m(a%Tb,6)}
function Xe(a,b){a.D=a;a.Y=a.xb=536870916;a.U=null;a.P=[];b=Je(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ac){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.Y|=ac[c],a.u(c+" messages enabled"))}}function bf(a,b){for(var c in ac)if(16==ac[c]){a.xa[c]=b;break}}l.kb=function(a){return gf.indexOf(a.toUpperCase())};
l.lb=function(a){var b,c=this.v;switch(a){case hf:b=c.i;break;case jf:b=c.K;break;case kf:b=c.b;break;case lf:b=c.j&65536?1:0;break;case mf:b=c.j&32768?1:0;break;case nf:b=c.j&131072?1:0;break;case of:b=c.j&32?1:0;break;case pf:b=c.j&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+J(this,Z(this.v.za).B));if(!this.U||a!=this.U)if(this.U=a,this.Y&1073741824)this.P.push(a);else{var c;if(this.Y&-2147483648&&this.v&&(c=this.v.A.N)||Nb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.ga=0,a.H&&I(a.H,void 0))}};
function We(a){var b;if(!sd(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(qf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.S=0;a.u("instruction history buffer allocated")}}function rf(a,b,c){if(!sf(a,c))return!1;rc(a.v,b);return!0}
function sc(a,b,c,d){if(!sf(a))return!1;var e="";null===c&&(e=(c=!a.Aa||"tr"==a.Aa)?"tr":"t");a.C=0;b||sd(a)&&td(a,a.v.i,0);try{b=kd(a.v,b);var f=a.v.Ra(b);0<f&&(tc(a.v,f),a.C+=f,uc(a.v,f,!0),vc(a.v,f),a.ha++)}catch(g){"number"!=typeof g&&(a.C=0,Jb(a.v,g.stack||g.message))}!1!==d&&(a.ga&&a.ga.stop(),I(a.H,-1));cd(a,c||!1,e);return 0<a.C}l.V=function(a){this.v&&this.v.V(a)};function cd(a,b,c){b=void 0===b?!0:b;a.Da&&(c&&a.u(tf+c),Ze(a.L,a.v.i),b&&1!=a.O?uf(a):vf(a))}
function sf(a,b){var c;(c=!a.v||!Lb(a.v))||(c=a.v,c.A.X?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.N?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Kb(a.v)}l.wa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ma=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){We(this);this.ha=0;this.U=null;this.C=0;Ze(this.L,this.v.i);this.A.N=!1;wf(this);a||cd(this)};
l.save=function(){var a=new G(this);a.set(0,$e(this.L));a.set(1,$e(this.oa));a.set(2,$e(this.fa));a.set(3,[this.j,this.R,this.Y]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=af(this,a[b++]),this.oa=af(this,a[b++]),this.fa=af(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.R=a[b][1],this.Y|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.u("running");this.A.N=!0;this.Ea=a;this.Fa=b};
l.stop=function(a,b){if(this.A.N){this.A.N=!1;this.C=b-this.Fa;if(!this.O){b="stopped";if(this.C){a-=this.Ea;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";sd(this)&&(b+=this.ha+" instructions, ",this.ha=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);wf(this,this.v.i);this.U=null}};function sd(a){return 1<a.b.length||!!a.ja}
function td(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.za==b&&(b=rd(a.v,1)));if(0<c&&(a.ja&&!--a.ja||Xc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ha++,0>d&&(d=a.v.f(b)),0<=d&&(Ze(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
function xf(a,b,c,d){var e=Z(b.B),f=a.Ha(b,1),g,h,k,n=0,p=f/Xb|0,t;for(t in yf)if(g=yf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=zf;n=p&3;break;case 32256:k=Af;n=p&7;break;case 29248:k=Bf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>Cf&&(k="B");k=Df[g||0]+k;if(g){if(28700==h)h=f/Yb&127,n=J(a,h,-1);else for(h=f>>23&15,n=J(a,h,-1),p=0;n&&p<Ef.length;p++)if(g==Ef[p][0]&&(t=Ef[p][h])){k=Df[t];n="";break}k=Fa(k,8)+(n?n+",":"");f&4194304&&(k+="@");k+=J(a,f&262143,-1);(f=f>>18&15)&&(k+="("+J(a,f,
-1)+")")}else k=Fa(k,8)+ff(f);f=k;g="";h=J(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ha(e,1),g+=" "+ff(k),null==e.B)break;while(e.B!=b.B)}h+=Fa(g,16)+f;c&&(h=Fa(h,48)+";"+(c||""),h=a.v.A.Ma?h+("cycles="+fd(a.v).toString()+" cs="+q(a.v.Ba)):h+(null!=d?"="+d.toString():""));return h}
function Ff(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),n=0;n<Ef.length;n++)for(var p in Ef[n])if(+p&&(h=Ef[n][p],k==Df[h])){k=Df[Ef[n][0]];c&&(c=J(a,+p)+","+c);break}for(var t in yf){g=+t;p=yf[t];switch(g){case 32512:n=zf;break;case 32256:n=Af;break;case 29248:n=Bf;break;default:n=[""]}for(var B in p){h=p[B];for(var P=0;P<n.length;P++){var ea=n[P];"S"==ea&&h>Cf&&(ea="B");if(k==Df[h]+ea){f=29248!=g?P:(P&3)<<1|(P&12)<<2;f=(B|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}}else c&&
(f=g=0);if(0<=f&&c)for(k=c.split(","),t=0;t<k.length;t++)if(h=k[t].trim()){if(1<t){a.u("too many operands: "+c);f=-1;break}B=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!B){a.u("unknown operand: "+h);f=-1;break}h=B[2];if(t||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+J(a,d)):"0";h=Qe(a,h,e);if(void 0==h){f=-1;break}if(!t&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Yb}else{if(0>h||15<h)h&=15;f+=h<<23}else{if(0>h||262143<h)h&=Sb;f+=h;if(h=B[3]){h=Qe(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=
15;f+=h<<18}B[1]&&(f+=4194304)}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Ve(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Ye(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Ye(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.I=["bw"];a.ya=0;a.ja=0}
l.Ka=function(a,b,c){var d=!0;c||gg(this,a,b,!1,!0);if(a!=this.b){var e=Ye(b);if(-1===e)this.u("invalid address: "+J(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ka(e&16383,a==this.I)}}d&&(a.push(b),c?b.la=!0:(ig(this,a,a.length-1,"set"),We(this)));return d};function gg(a,b,c,d,e){var f=!1;c=Ye(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Ye(h)&&(!d||h.la)){f=!0;h.la||e||ig(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.I));h.la||We(a);break}}return f}
function jg(a,b){for(var c=1;c<b.length;c++)ig(a,b,c);return b.length-1}function ig(a,b,c,d){c=b[c];a.u(b[0]+" "+J(a,c.B)+(d?" "+d:c.Za?' "'+c.Za+'"':""))}function wf(a,b){if(void 0!==b)Xc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.la){if(!gg(a,a.b,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.ya++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.la)for(var k=Ye(h)&(d==a.b?65535:-1),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.la&&(gg(a,d,h,!0),e=!0);if(p=h.sb){for(var f=!1,t=0;t<p.length;t++)if(!kg(a,p[t],!0)){if(p[t].indexOf("if")){f=!0;break}for(var B=t+1;B<p.length&&p[B].indexOf("else");B++)t++;if(B==p.length){f=!0;break}}a.v.A.N||(f=!0)}if(f){e||ig(a,d,g,"hit");break}}}a.ya--;return f}
function lg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=m(d,2);Ze(e.Ca,d);f+="="+J(e,e.Ha(e.Ca),36)+" ";c+=f}if(b){b="";for(d=0;d<gf.length;d++)(e=gf[d]||"")&&(e+="="+J(a,a.lb(d),d>=lf?1:d==jf?23:18)+" "),b+=e;c+="\n"+b}return c}l.zb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ce(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,n=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],t=Ha(p,k,a.zb);0>t&&p.splice(-(t+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({rd:b,B:c,Pb:d,W:e,tb:f})}function mg(a,b,c){var d=[],e=Ye(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Pb;if(e>=g&&e<g+h){e=Ha(f.tb,[e-g],a.zb);0<=e?ng(a,b,e,d):c&&(e=~e,ng(a,b,e-1,d),ng(a,b,e,d));break}}return d}
function og(a,b,c){var d=0,e=a.G;b.forEach(function(a,b){xc(e,b,a);null==c&&(c=b);d++});d?(a.u(d+" words loaded at "+J(a,c)+"-"+J(a,c+d-1)),H(a.v,c||0),cd(a)):a.u("no data")}function ng(a,b,c,d){var e={},f=a.F[b].tb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].W[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function pg(a,b){var c=cf(a,b[1],a.fa);if(c){var d=b[2];if(void 0==d)a.u("begin assemble at "+J(a,c.B)),a.R=!0,I(a.H);else{var e=b[0].substr(1),f=d.match(/^(['"]?)((\/|http:).*)\1$/);if(f)if(a.qa)a.u("assembly already in progress");else{var g=f[2],h=c.B;a.qa=new qg(g,h,e,a,function(b,c){if(b)a.u("error ("+b+") processing "+(c||g));else try{og(a,a.qa.H,h)}catch(p){a.u(p.message)}a.qa=null})}else b.shift(),b.shift(),b.shift(),b=Ff(a,d,b.join(""),c.B||0),0<=b&&(a.rb(c,b),a.u(xf(a,c)))}}}
function rg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Te(a)||a.u("no variables"),!0;if(!c[2])return Te(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=Qe(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function sg(a,b,c){var d=null;if(b=cf(a,b)){var e=mg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function uf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Qe(a,b);if(void 0===g)return;b=a.kb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case hf:H(h,
g);Ze(a.L,h.i);break;case lf:f=65536;break;case mf:f=32768;break;case nf:f=131072;break;case of:f=32;break;case pf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);I(a.H);a.u("updated registers:")}}a.u(lg(a,e));c&&(Ze(a.L,d.i),vf(a,J(a,a.L.B)))}}function tg(a,b){b=Ga(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Re(a,null,c[2].charCodeAt(0)):Qe(a,b,!1)}
function ug(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Oe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Aa=b;Wa(c,function(){return Ob(a,!0)&&sc(a,e,d,!1)},function(){a.ga&&a.ga.stop();I(a.H,-1);Ob(a,!1)})}}
function vf(a,b,c,d){if(b=cf(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Oe(a,c.substr(1)),null!=c&&(d=c);else{d=cf(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.O?a.C:null,g=null!=f?"cycles":null,h=mg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.u(n)}h[3]&&(g=h[3],f=null);h=a.fa;n=b;h.B=n.B;h.Wa=n.Wa;h.la=n.la;h.T=n.T;a.u(xf(a,b,g,f));e-=b.B-k;c++}}}
function kg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(tf+b):(a.R&&(a.u("ended assemble at "+J(a,a.fa.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(Lb(a)&&0<b.length){a.R&&(b="a "+J(a,a.fa.B)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),n=1;n<h.length;n++){var p=h.charAt(n);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(n);g.unshift(h.substr(0,n));break}}switch(g[0].charAt(0)){case "a":pg(a,g);
break;case "b":a:{var t=g[0],B=g[1],P=b;if("?"==B)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var ea=t.charAt(1);if("l"==ea){var Fd;Fd=0+jg(a,a.b);Fd+=jg(a,a.M);(Fd+=jg(a,a.I))||a.u("no breakpoints")}else if("n"==ea){var Gf=+B||0;B&&(a.ja=Gf);a.u("break after "+Gf+" instruction(s)")}else if(void 0===
B)a.u("missing breakpoint address");else{var aa=Z();if("*"!=B&&(aa=cf(a,B,a.L),!aa))break a;"c"==ea?null==aa.B?(Ve(a),a.u("all breakpoints cleared")):gg(a,a.b,aa)||gg(a,a.M,aa)||gg(a,a.I,aa)||a.u("breakpoint missing: "+J(a,aa.B)):null!=aa.B&&(ef(a,aa,P),"p"==ea?a.Ka(a.b,aa):"r"==ea?a.Ka(a.M,aa):"w"==ea?a.Ka(a.I,aa):a.u("unknown breakpoint command: "+ea))}}}break;case "c":a.va&&(a.va.value="");break;case "d":a:{var bb,cb=g[0],oa=g[1],Ca=g[2],ph=g[3];if("?"==oa){var db="";for(bb in ac)a.xa[bb]&&(db&&
(db+=","),db+=bb);db+=",state,symbols";a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");db.length&&a.u("dump extension commands:\n\t"+db)}else if("state"==oa){var Gd=vg(a.H,!0);"console"==Ca?console.log(Gd):(a.va&&(a.va.value=""),Gd&&a.u(Gd))}else if("symbols"==oa)for(var Hd=0;Hd<a.F.length;Hd++){var Id=a.F[Hd],eb;for(eb in Id.W)if("."!=eb.charAt(0)){var Hf=
Id.W[eb].o;if(void 0!==Hf){var If=Id.W[eb].l;If&&(eb=If);a.u(J(a,Hf)+" "+eb)}}}else{if("d"==cb){for(bb in ac)if(g[1]==bb){var Jf=a.xa[bb];Jf?(g.shift(),g.shift(),Jf(g)):a.u("no dump registered for "+oa);break a}oa||(cb=a.Ia||"dw")}else a.Ia=cb;if("dh"==cb){var Kf=oa,Lf=Ca,Mf="",Nf=0,ka=a.S,pa=a.i;if(pa.length){var fa=+Kf||a.za,Ab=+Lf||10;isNaN(fa)?fa=Ab:Mf="more ";fa>pa.length&&(a.u("note: only "+pa.length+" available"),fa=pa.length);ka-=fa;0>ka&&(null==pa[pa.length-1].B?(fa=ka+fa,ka=0):ka+=pa.length);
var Jd=[];"call"==Lf&&(Ab=1E5,Jd=["CALL"]);for(void 0!==Kf&&a.u(fa+" instructions earlier:");0<Ab&&ka!=a.S;){var Of=pa[ka++];if(null==Of.B)break;var Bb=Z(Of.B),qh=fa--,Pf=xf(a,Bb,"history",qh);(!Jd.length||0<=Pf.indexOf(Jd[0]))&&a.u(Pf);Bb.ib&&(ka+=Bb.ib,Ab-=Bb.ib,fa-=Bb.ib);ka>=pa.length&&(ka=0);a.za=fa;Nf++;Ab--}}Nf||(a.u("no "+Mf+"history available"),a.za=void 0)}else{var fb=cf(a,oa,a.oa);if(fb){var Ka=0,Qf="ds"==cb;if(Ca){if("l"==Ca.charAt(0))Ca=Ca.substr(1)||ph,Ka=Oe(a,Ca);else{var Rf=cf(a,Ca);
Rf&&(Ka=Rf.B-fb.B)}0>Ka&&(Ka=0);65536<Ka&&(Ka=65536)}var rh=a.T;fb.T&&(a.T=fb.T);for(var Sf="db"==cb?1:2,Kd=Ka||32,Ld=1==Sf?1:4,sh=(Kd+Ld-1)/Ld|0||1,La="";sh--&&0<Kd;){for(var qa="",Md="",oa=J(a,fb.B),Tf=Ld;0<Tf--&&0<Kd--;){var Nd=a.Ha(fb,1);Qf?(qa&&(qa+=","),qa+=Nd):(qa+=ff(Nd),qa+=" ");for(var Ac=29,th=0;1==Sf&&0<=Ac;th++)var Cb=Nd/Math.pow(2,Ac)%Math.pow(2,7),qa=qa+J(a,Cb,7),Cb=Cb+0,Md=Md+(32>Cb?".":String.fromCharCode(Cb)),Ac=Ac-7}La&&(La+="\n");La=Qf?La+(qa+","):La+(oa+": "+qa+(0>Tf?" "+Md:
""))}La&&a.u(La);a.T=rh}}}}break;case "e":if("else"==g[0])break;var Uf,Vf,Wf=g[0],Od=g[1];"e"==Wf||"ew"==Wf?(Uf=a.Ha,Vf=a.rb):Od=null;if(null==Od)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else{var Bc=cf(a,Od,a.oa);if(Bc)for(var Pd=2;Pd<g.length;Pd++){var Db=Qe(a,g[Pd]);if(void 0===Db)break;Db=df(Db);a.u("changing "+J(a,Bc.B)+" from "+ff(Uf.call(a,Bc))+" to "+ff(Db));Vf.call(a,Bc,Db,1)}}break;case "g":a:{var Xf=g[1],uh=b;if(void 0!==Xf){var Qd=cf(a,Xf);if(!Qd)break a;
ef(a,Qd,uh);a.Ka(a.b,Qd,!0)}rf(a,!0,c)}break;case "h":a.A.N?(c||a.u("halting"),a.V()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Rd;var Eb=b.substr(2),Eb=Ga(Eb);Qe(a,Eb)?(c||a.u("true: "+Eb),Rd=!0):(c||a.u("false: "+Eb),Rd=!1);Rd||(d=!1);break}f=!0;break;case "k":var vh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Sd=0,Td=Z(),Fb=Z();for(a.u("stack trace for "+J(a,Fb.B));10>Sd;){for(var Ma=null,
wh=256;65536>Fb.B>>>0;){Td.B=a.Ha(Fb,2);if(null==Fb.B||!wh--)break;if(!(Td.B&1)){for(var xh=a,Cc=Td,Yf=null,Gb=Cc.B,Zf=Gb,Ud=1;6>=Ud&&Gb;Ud++){if(2<Ud){Cc.B=Gb;var Dc=xf(xh,Cc);if(0<=Dc.indexOf("JSR")){var $f=Dc.indexOf(" ");if(Gb+(Dc.indexOf(" ",$f+1)-$f-1)/2==Zf){Yf=Dc;break}}}Gb-=2}Cc.B=Zf;if(Ma=Yf)break}}if(!Ma||null==Ma)break;var ag=null;if("ks"==vh){var bg=Ma.match(/[0-9A-F]+$/);bg&&(ag=sg(a,bg[0]))}Ma=Fa(Ma,50)+" ;"+(ag||"stack="+J(a,Fb.B));a.u(Ma);Sd++}Sd||a.u("no return addresses found")}break;
case "l":if("ln"==g[0]){sg(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,sa=null,L=g[1];"?"==L&&(L=void 0);if(void 0!==L){var Da=0;if("all"==L)Da=1879046143,L=null;else if("on"==L)sa=!0,L=null;else if("off"==L)sa=!1,L=null;else{"keys"==L&&(L="key");"kbd"==L&&(L="keyboard");for(ra in ac)if(L==ra){Da=ac[ra];sa=!!(a.Y&Da);break}if(!Da){a.u("unknown message category: "+L);break a}}if(Da)if("on"==g[2])a.Y|=Da,sa=!0;else if("off"==g[2]&&(a.Y&=~Da,sa=!1,1073741824==Da)){for(var cg=1E3<=a.P.length?a.P.length-
1E3:0;cg<a.P.length;)a.u(a.P[cg++]);a.P=[]}}var yh=0,Hb="";for(ra in ac)if(!L||L==ra){var zh=!!(a.Y&ac[ra]);if(null===sa||sa==zh)Hb&&(Hb+=","),++yh%10||(Hb+="\n\t"),"key"==ra&&(ra="keys"),Hb+=ra}void 0===L&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Hb||"none"));We(a)}break;case "p":if("print"==g[0]){tg(a,b.substr(5));break}var dg=g[0],eg="p"==dg?0:"pr"==dg?1:-1;if("?"==g[1]||0>eg)a.u("step commands:"),
a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var fg=Z(a.v.i);a.Ha(fg);a.O?(a.Ka(a.b,fg,!0),rf(a)||(a.H&&jd(a.H),a.O=0)):ug(a,eg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}uf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var gb=+g[2];if(2==gb||8==gb||10==gb||16==gb)a.T=gb;else{a.u("invalid base: "+gb);break}}a.u("default base: "+a.T);break;case "cs":var Ib;void 0!==g[3]&&(Ib=+g[3]);switch(g[2]){case "int":a.v.oa=
Ib;break;case "start":a.v.Ca=Ib;break;case "stop":a.v.ja=Ib;break;default:a.u("unknown cs option");break a}void 0!==Ib&&bd(a.v);a.u("checksums "+(a.v.A.Ma?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ca.toFixed(2)+"Mhz")+" ("+a.v.fa+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),
a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":ug(a,g[0],g[1]);break;case "u":vf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){rg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.2 ("+a.v.wb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){tg(a,b.substr(1));break}var Vd="commands:",Wd;for(Wd in wg)Vd+="\n"+
Fa(Wd,9)+wg[Wd];sd(a)||(Vd+="\nnote: history disabled if no exec breakpoints");a.u(Vd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(hg){a.u("Debugger "+(hg.stack||hg.message)),d=!1}return d}function ed(a,b,c){b=Je(a,b,c);for(var d in b)if(!kg(a,b[+d]))return!1;return!0}
var wg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Cf=20,Df=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
hf=0,jf=1,kf=2,lf=3,mf=4,nf=5,of=6,pf=7,gf="PC RA EA C0 C1 OV ND PD".split(" "),xg={},yf=(xg[28672]={0:101},xg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},xg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Cf,9216:53,9472:52,
9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},xg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},xg[29248]={24576:79,24640:80,25088:81,25152:82},xg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},xg),zf=["","I","M","S"],Af=" L E LE A GE N G".split(" "),Bf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Ef=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],qf=1E3,tf=">> ";Za(function(){for(var a=x(document,w,"debugger"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ue(d);ub(d,c)}});
function qg(a,b,c,d,e){this.R=b||0;this.S=c||"";this.i=d;this.done=e;this.u("starting PCjs MACRO-10 Mini-Assembler...");this.v={};this.P={};this.G=[];this.K=[];this.H=[];this.O=this.ea=0;this.sa=this.R;this.I=null;this.b=0;this.F=null;this.C=this.J="";this.j=null;this.D="";this.w=[];this.M=0;this.L=a.split(";");yg(this)}
function yg(a){if(a.M==a.L.length)a.done(zg(a));else{var b=a.L[a.M++];a.u("loading "+ya(b));"/"==b[0]&&".MAC"==b.slice(-4)&&(b+=".txt");Ja(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(Aa(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Ag(a,"unrecognized HTML entity: "+c[0])}a.w=a.w.concat(e.split(/(\r?\n)/));setTimeout(function(){yg(a)},0)}})}}
function zg(a){if(0<=a.S.indexOf("p"))return a.u(a.w.join()),0;var b=Se(a.i);try{var c;for(c=0;c<a.w.length&&(a.ea++,Bg(a,a.w[c]+"\r\n"));c+=2);a.b&&a.error("open block from line "+a.v[a.F].ea);for(c=0;c<a.G.length;c++){var d=a.G[c],e=a.v[d];e?Cg(a,e.La):a.error("missing definition for literal: "+d)}a.K.forEach(function(b){var c=b.sa,d=Dg(a,b.Db,void 0,c);void 0===d?a.error("unable to parse expression: "+b.Db):(d+=a.H[c],a.H[c]=Eg(a,d,c))})}catch(f){a.u(f.message),a.O=-1}a.i.K=b;return a.O}
function Bg(a,b){var c;if(a.b){1==a.b&&(c=b.indexOf(a.C),0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.I+" definition: "+b));if(1<a.b){c="";for(var d=0;d<b.length;d++)if(b[d]==a.C)a.b++;else if(b[d]==a.J&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.F||"";a.v[d].La+=b;a.b||(a.F=null,Fg(a,d));b=c}if(a.b)return!0}null!=a.j&&(b=Gg(a,b));d=b.match(/\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i);if(!d||d[4]&&";"!=d[4].slice(0,1))return a.error("failed to parse line: "+
b),!1;var e=d[1];c=d[2].toUpperCase();b=d[3].trim();d=d[3]+d[4];e&&(e=e.slice(0,-1),Hg(a,e,a.sa,Ig));var f;if(c&&(f=b.match(/^([=:]+)(.*)/))){var g=0,e=c;c=f[1];b=f[2];"=="==c?g|=Jg:"=:"==c&&(g|=Kg);Hg(a,e,b,g);c=b=""}if(!c&&!b)return!0;a.I=c;f=b;for(var e=0,g=null,h=0,k=-1;h<f.length;){var n=f[h];"["==n&&(e++||(k=h));h++;if("]"==n&&0>=--e)break}0>e&&a.error("missing bracket(s): "+f);0<=k&&(g=f.substr(k,h-k));for((f=g)&&(b=b.replace(f,Lg(a,Mg,f)));f=Ng(a,b);)b=b.replace(f,f.slice(0,-1));if(!Fg(a,
c,b))switch(c){case Og:case Pg:case Qg:Gg(a,d);break;case Rg:Sg(a,0,b.replace(",",",,"));break;case Tg:case Ug:case Vg:case Wg:Lg(a,c,b);break;case Xg:case Yg:break;default:d=b,b=c+d,0<=b.indexOf(",,")||!c&&0>b.indexOf("@")&&0>b.indexOf("(")?c=Dg(a,b,!0):(c=Ff(a.i,c,d,a.sa,!0),0>c&&(c=Ff(a.i,"",b,a.sa,!0),0>c&&(c=void 0))),void 0!==c?Sg(a,c,a.i.ka):a.error("unrecognized expression: "+b)}return!0}
function Fg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c)return b=Zg(a,c),Cg(a,d.La,d.ub,b),!0;if("?"!=b[0])return!1;switch(b.substr(1)){case Ug:d.mb||Cg(a,d.La);break;case Wg:for(;0<d.mb--;)Cg(a,d.La);break;default:return!1}return!0}
function Cg(a,b,c,d){b=b.split(/\r?\n/);for(var e=0;e<b.length;e++){var f=b[e]+"\r\n";if(c)for(var g=0;g<c.length;g++)for(var h=c[g],k=d[g]||"",n=0;;){var p=f.indexOf(h,n);if(0>p)break;var n=p+1,t=p+h.length,B="",P="";p&&(B=f[p-1]).match(/[0-9A-Z$%.]/i)||!(t>=f.length)&&(P=f[t]).match(/[0-9A-Z$%.]/i)||("'"==B&&p--,"'"==P&&t++,f=f.substr(0,p)+k+f.substr(t),n=p+k.length)}if(!Bg(a,f))break}}qg.prototype.error=function(a){throw Error("error"+(this.ea?" at line "+xa(this.ea):"")+": "+a);};
function Ag(a,b){a.u("warning"+(a.ea?" at line "+xa(a.ea):"")+": "+b)}function $g(a,b,c){c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0<g&&a.error("extra bracket(s): "+b):f=b.substr(0,d);return f}
function Dg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Dg(a,f[1]):0,void 0!==b&&(f=f[2]?Dg(a,f[2]):0,void 0!==f&&(e=Y(a.i,b,18,!0)*Math.pow(2,18)+Y(a.i,f,18,!0)))):(void 0===d&&(d=a.sa),e=Qe(a.i,b.replace(/\.([^0-9]|$)/g,J(a.i,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
function Ng(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;a.v[d]&&a.error("reserved symbol redefined: "+c);a.v[d]={name:d,mb:ah,ub:[],Jb:[],La:b+": 0",ea:a.ea};a.G.push(d)}return c}function Zg(a,b){for(var c=[];b;){b=b.trim();var d=$g(a,b,void 0);if(!d)break;c.push(d);b=b.substr(d.length+1)}return c}
function Gg(a,b){var c=b;null==a.j&&(a.j=a.D="",b&&(a.j=b[0],c=b=b.substr(1)));if(a.j){var d=b.indexOf(a.j);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.j=null);a.D+=b}if(null==a.j){var d=b=0,e,f,g=a.D.length;a.I==Pg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.I==Qg&&(e--,f++));var k=a.D.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Sg(a,d),b=0)}b&&Sg(a,d)}return c}
function Lg(a,b,c){var d,e,f,g;a.C="<";a.J=">";e=f=[];if(b==Tg){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(?:\(([^)]*)\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+": "+c),"";b=d[1];if(d[2]){f=e=Zg(a,d[2]);c=[];for(g=0;g<f.length;g++){var h=f[g].indexOf("<");if(0<=h){var k=f[g].lastIndexOf(">");0>k&&(k=f[g].length);c[g]=f[g].substr(h,k-h);f[g]=f[g].substr(0,h)}}f=c}c=bh;g=3}else if(b==Mg)a.C="[",a.J="]",b="?"+xa(a.sa,5),a.v[b]&&a.error("literal symbol redefined: "+b),d=[c[0],b+": "+c.substr(1)],
c=ch,a.G.push(b),g=0;else{g=$g(a,c);if(!g)return a.error("missing "+b+" expression: "+c),"";c=c.substr(g.length+1);g=g.trim();d=c.match(/\s*(<|)(.*)/i);b="?"+b;c=Dg(a,g)||0;g=1}b=b.toUpperCase();a.b=1;h="";d[g]&&(a.b=2,h=d[g+1],h.slice(-1)==a.J&&(a.b=0,h=h.slice(0,-1)));a.v[b]={name:b,mb:c,ub:e,Jb:f,La:h,ea:a.ea};a.b?a.F=b:Fg(a,b);return b}
function Hg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Ig&&a.P[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Dg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}a.P[b]={name:b,value:c,ea:a.ea,od:d};a.i.K[b]=c}}function Sg(a,b,c){a.H[a.sa]=Eg(a,b);null!=c&&a.K.push({sa:a.sa,Db:c,ea:a.ea});a.sa++}
function Eg(a,b,c){c=void 0===c?a.sa:c;var d=Y(a.i,b||0,36,!0);(b<-C||b>=E)&&Ag(a,"truncated value "+m(b)+" at location "+m(c)+" to "+m(d));return d}qg.prototype.u=function(a){this.i?this.i.u(a):console.log(a)};var Ig=1,Jg=2,Kg=4,Og="ASCII",Pg="ASCIZ",Tg="DEFINE",Ug="IFE",Vg="IRP",Mg="LITERAL",Xg="PAGE",Wg="REPEAT",Qg="SIXBIT",Yg="SUBTTL",Rg="XWD",bh=-1,ch=-2,ah=-3;
function dh(a,b,c){u.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;eh(this,b);this.O=$c(this,"autoPower",a,6);this.w=0;this.ba=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.U=!1;this.I=this.C=null;this.S=this.P=!1;this.ca=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=fh(this);if(this.v=tb("CPU",this.id)){this.D=tb("Debugger",this.id);this.G=new zc({id:this.Ua+".bus",busWidth:this.ba},this.v,this.D);var d,e=rb(this.id);if((this.j=tb("Panel",this.id))&&this.j.va)for(b=
0;b<e.length;b++)d=e[b],d.da=this.j.da,d.u=this.j.u,d.va=this.j.va;this.u(Rb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ga&&d.Ga(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=gh),this.b&&(this.I=new G(this,"1.34.2"),hh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=ih(this))&&(this.K=!0);if(b){var g=this;Ja(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Ga(b):"")+")")):(g.L=b,g.U=!0);Mb(g)})}else Mb(this);this.J.power||(this.O=!0);!c&&this.O&&jh(this,this.Oa)}else r("Unable to find CPU component")}ma(dh,u);function eh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Ua(b)||Ua(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function jh(a,b,c){for(var d=rb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Lb(f)){Lb(f,function(){jh(a,b,c)});return}}b.call(a,c)}
function kh(a,b){var c=new G(a,"1.34.2",lh);if(hh(c)&&mh(c)){var d=c.get(nh),e=b?b.get(nh):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=dh.prototype;
l.Oa=function(a){void 0===a&&(a=this.b||(this.L?oh:gh));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new G(this,"1.34.2");if(a==Ah)b=!0;else if(a>gh){if(hh(d,this.L)){this.C=new G(this,"1.34.2",Bh);hh(this.C)&&(Ch(this,d),a=Dh,Eh(this.C));this.C.set(nh,Ia());Fh(this.C);var e=this.b&&!this.K;if(a==oh||qb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=mh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?hh(d,g):("error"==f&&"no machine state"!=
g?(this.da("Error: "+g),"unable to verify user"==g&&(Sa(Gh,""),this.i=null)):this.u(f+": "+g),Eh(d),hh(d)?(c=mh(d),e=!0):c=!1))}e&&kh(this,c?d:null)}else a==Dh&&d.clear()}else kh(this);delete this.L;delete this.I}e=rb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Hh(this,g,d,b,c));b=[d,a,c];a!=Ah?jh(this,this.Ab,b):this.Ab(b)}};
function Hh(a,b,c,d,e){if(!b.A.X){b.A.X=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.U?(c.clear(),a.b=gh,window&&window.location.reload()):a.P=!0,b.wa(null),e=!1),!d&&b.vb){var g=b.vb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.Ab=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Hh(this,this.v,b,c,a),I(this,-2),this.v.aa());this.P&&(Ch(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function Ch(a,b){if(qb("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ca;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ja("http://www.pcjs.org/api/v1/report",d,!0)}}
function vg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",lh),h=Ia();g.set(nh,h);f.set(nh,h);f.set(Ih,"1.34.2");f.set(Jh,window?window.location.href:null);f.set(Kh,window?window.navigator.userAgent:"");a.v&&a.v.ma&&(c&&(b&&(a.v.A.aa=a.v.A.N),a.v.V()),d=a.v.ma(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=rb(a.id),k=0;k<h.length;k++){var n=h[k];n.A.X&&(n.ma&&(d=n.ma(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.A.X=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Lh(a,a.i,f.toString()),Fh(g)&&Fh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Mh),d&&f.clear(h)):e=f.toString());c&&(a.A.X=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
l.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Qb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Qb(this,"Resetting "+this.v.type),this.v.reset());for(var a=rb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Qb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=rb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
l.stop=function(a,b){for(var c=rb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}I(this,-1)};
function I(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.ab+=d))&&(e.textContent=c.A.N?c.ba.toFixed(2)+"Mhz":"Stopped",c.ab=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.T||8,e=e||0,e=8==f?m(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.xa);jc(a,a.i);dc(a,a.w)}}
l.na=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.X?vg(d,!1,!0):jh(d,d.Oa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.X&&!d.w)if(d.b&&!d.F){var a=qb("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");vg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Oa(gh)}else d.reset(),d.v&&!d.D&&d.v.aa()},!0;case "save":if(Aa(Oa(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=fh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=vg(d,b);b?Lh(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function fh(a,b){var c=a.i;c||((c=Ra(Gh),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=Nh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function Nh(a,b){a.i=null;b=Ja(Oa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Sa(Gh,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function ih(a){var b=null;a.i&&(b=Oa()+"/api/v1/user?req=load&user="+a.i+"&state="+Oh(a,"1.34.2"));return b}
function Lh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Oh(a,"1.34.2");d.data=c;b=Ja(Oa()+"/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.da("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.da(c),Sa(Gh,""),a.i=null)}}
function jd(a,b){if(a.va){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.va.focus();!b&&window&&window.scrollTo(c,d)}}var Bh="failsafe",lh="validate",nh="timestamp",Ih="version",Jh="url",Kh="browser",Gh="user",Ah=-1,gh=0,oh=1,Dh=2,Mh=3;Za(function(){for(var a=x(document,w+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=v(c),c=x(c,w,"computer"),e=0;e<c.length;e++){var f=c[e],g=v(f),g=new dh(g,d,!0);ub(g,f);g.O&&jh(g,g.Oa)}});
$a.show.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=tb("Computer",c.id))&&c.S&&!c.A.X&&c.Oa(Ah)}});$a.exit.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=tb("Computer",c.id))&&c.A.X&&vg(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Oh(a,b,c);Eh(this,a.Nb)}l=G.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function hh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Pa()&&(b=Ra(a.key))?(a.i=b,a.v=!0):!1}function mh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){r(c.message||c),b=!1}return b}function Fh(a){var b=!0;if(Pa()){var c=JSON.stringify(a.b);Sa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function Eh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}l.clear=function(a){Eh(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 Oh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Ph=0;
function Qh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ja(a,null,!0,function(h,k,n){n?(k||(k="unable to load "+a+" ("+n+")"),g(k,null)):Rh(k,a,b,c,d,e,f,g)})}
function Rh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(nb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Sh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Sh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ja(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Sh(a,b,c)}})}else c(a,null)}
function Th(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);n&&(--Ph||ib(!0));n=!1}var h,k,n=!0;Ph++;ob[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));t.appendChild(B)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Qh(d,null,a,null,!1,f,function(a,e){e?(nb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Ph||ib(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Ph||
ib(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Qh(c,b,a,e,!0,f,p):Rh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(P){g(P.message)}return n}window.embedPDP10=function(a,b,c,d){ib(!1);return Th("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ib(!1);return Th("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return tb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!wb[a]){for(var c=!0,d=wb,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p<f;p++){var t=b[p];if('"'==t||"'"==t)n&&t!=n?k+=t:(n?n=null:n=t,k&&(h.push(k),k=""));else{if(!n){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;vb(a)||(c=!1)}return c};window.enableEvents=ib;window.sendEvent=kb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map

View file

@ -168,7 +168,7 @@ function P(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,6),a.lc(e,d.call
function af(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.lc(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.Cc=function(a){this.A.complete=!0;var b=this.D?bf(this.D)?1:this.A.Tc?-1:0:0,c=a?this.A.Tc?0:1:-1;this.A.Tc=!1;this.lb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(cf(this.D,this.g[7],c)){this.da();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.ob&224)>>5,f=this.R&&this.R.pb>e?this.R:null;f&&(d=f.Fb,e=f.pb);e>(this.w&224)>>5?(this.i&8&&(Fe(this,2),this.i&=-9),this.sa(d,0,-10),e=!0):e=!1;e&&(f&&He(this,f),a=!0);this.R||this.ob||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}if(this.i&112&&Ie(this)){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.pa(a);this.g[7]=a+2&65535;this.be(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};Sa(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ve(d);pb(d,c)}});
function df(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function ef(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function Bf(a,b){a=b<<1;Je(this,a);return a&65535}function Cf(a,b){a=b<<1;Je(this,a<<8);return a&255}function Df(a,b){a=b&32768|b>>1|b<<16;Je(this,a);return a&65535}function Ef(a,b){a=b&128|b>>1|b<<8;Je(this,a<<8);return a&255}function Ff(a,b){a=b&~a;this.Fa(a);return a}function Gf(a,b){a=b&~a;this.Fa(a<<8);return a}
function df(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function ef(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function ff(a,b){a=b<<1;Je(this,a);return a&65535}function Cf(a,b){a=b<<1;Je(this,a<<8);return a&255}function Df(a,b){a=b&32768|b>>1|b<<16;Je(this,a);return a&65535}function Ef(a,b){a=b&128|b>>1|b<<8;Je(this,a<<8);return a&255}function Ff(a,b){a=b&~a;this.Fa(a);return a}function Gf(a,b){a=b&~a;this.Fa(a<<8);return a}
function Hf(a,b){a|=b;this.Fa(a);return a}function If(a,b){a|=b;this.Fa(a<<8);return a}function Jf(a,b){a=~b|65536;this.qb(a);return a&65535}function Kf(a,b){a=~b|256;this.qb(a<<8);return a&255}function Lf(a,b){this.I=this.L=a=b-a;this.G=b&(b^a);return a&65535}function Mf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.G=b&(b^c);return a&255}function Nf(a,b){this.I=this.L=a=b+a;this.G=a&(b^a);return a&65535}function Of(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.G=c&(b<<8^c);return a&255}
function Pf(a,b){a=-b;this.qb(a,a&b&32768);return a&65535}function Qf(a,b){a=-b;this.qb(a<<8,(a&b&128)<<8);return a&255}function Rf(a,b){a=b<<1|this.C>>16&1;Je(this,a);return a&65535}function Sf(a,b){a=b<<1|this.C>>16&1;Je(this,a<<8);return a&255}function Tf(a,b){a=(this.C&65536|b)>>1|b<<16;Je(this,a);return a&65535}function Uf(a,b){a=((this.C&65536)>>8|b)>>1|b<<8;Je(this,a<<8);return a&255}function Vf(a,b){var c=b-a;Ke(this,c,a,b);return c&65535}
function Wf(a,b){var c=b-a;Ke(this,c<<8,a<<8,b<<8);return c&255}function Xf(a,b){this.I=this.L=b&65280;this.G=this.C=0;return(b<<8|b>>8)&65535}function Yf(a,b){a^=b;this.Fa(a);return a&65535}function Zf(a){P(this,a,Ve(this,a),df);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
@ -186,7 +186,7 @@ function Sg(a){a&1&&(this.C=65536);a&2&&(this.G=32768);a&4&&(this.L=0);a&8&&(thi
function Xg(){this.ta&&(this.ta.Hd(this.g[7],!0),this.ta.setData(this.g[0],!0));this.i|=8;Fe(this,-2);this.b-=3}function Yg(a){P(this,a,this.g[(a>>6&7)+this.Ac],Yf);this.b-=this.u?9:3+(7==this.j?2:0)}function Q(a){var b;if(b=this.D)b=this.D,E(b,1)?(F(b,"undefined opcode "+K(b,a),!0,!0),b=Dg(b)):b=!1;b||this.sa(8,0,-9)}function we(a){Zg[a>>12].call(this,a)}function $g(a){ah[a>>6&3].call(this,a)}function bh(a){ch[a>>6&3].call(this,a)}function dh(a){eh[a>>6&3].call(this,a)}
function fh(a){gh[a&15].call(this,a)}function hh(a){ih[a&15].call(this,a)}function jh(a){kh[a>>6&3].call(this,a)}function lh(a){mh[a>>6&3].call(this,a)}function nh(a){oh[a>>6&3].call(this,a)}
var Zg=[function(a){ph[a>>8&15].call(this,a)},Kg,yg,hg,dg,fg,Zf,Q,function(a){qh[a>>8&15].call(this,a)},Lg,zg,ig,eg,gg,Ug,Q],ph=[function(a){rh[a>>4&15].call(this,a)},ug,rg,jg,kg,pg,lg,ng,Ig,Ig,$g,bh,dh,Q,Q,Q],ah=[function(a){af(this,a,0,this.qb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Jf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Nf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Lf);this.b-=this.u?9:3+(7==this.j?2:0)}],ch=[function(a){P(this,a,0,Pf);
this.b-=this.u?11:6},function(a){P(this,a,Be(this)?1:0,df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,Be(this)?1:0,Vf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Ye(this,a);this.qb(a);this.b-=this.u?4:3+(7==this.j?2:0)}],eh=[function(a){P(this,a,0,Tf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Rf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Bf);this.b-=this.u?9:3+(7==this.j?2:0)}],rh=
this.b-=this.u?11:6},function(a){P(this,a,Be(this)?1:0,df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,Be(this)?1:0,Vf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Ye(this,a);this.qb(a);this.b-=this.u?4:3+(7==this.j?2:0)}],eh=[function(a){P(this,a,0,Tf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Rf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,ff);this.b-=this.u?9:3+(7==this.j?2:0)}],rh=
[function(a){sh[a&15].call(this,a)},Q,Q,Q,Gg,Gg,Gg,Gg,Qg,Q,fh,hh,Vg,Vg,Vg,Vg],sh=[Cg,Xg,Rg,tg,Eg,Pg,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q],gh=[Og,function(){this.C=0;this.b-=5},function(){this.G=0;this.b-=5},xg,function(){this.L=1;this.b-=5},xg,xg,xg,function(){this.I=0;this.b-=5},xg,xg,xg,xg,xg,xg,xg],ih=[Og,function(){this.C=65536;this.b-=5},function(){this.G=32768;this.b-=5},Sg,function(){this.L=0;this.b-=5},Sg,Sg,Sg,function(){this.I=32768;this.b-=5},Sg,Sg,Sg,Sg,Sg,Sg,Sg],qh=[sg,qg,mg,og,vg,wg,bg,cg,Bg,Wg,jh,lh,
nh,Q,Q,Q],kh=[function(a){$e(this,a,0,255,this.qb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,0,Kf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,1,Of);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,1,Mf);this.b-=this.u?9:3+(7==this.j?2:0)}],mh=[function(a){Ze(this,a,0,Qf);this.b-=this.u?11:6},function(a){Ze(this,a,Be(this)?1:0,ef);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,Be(this)?1:0,Wf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Xe(this,
a);this.qb(a<<8);this.b-=this.u?4:3+(7==this.j?2:0)}],oh=[function(a){Ze(this,a,0,Uf);this.b-=this.u?9+(this.Yc&1):3+(7==this.j?2:0)},function(a){Ze(this,a,0,Sf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,0,Ef);this.b-=this.u?9+(this.Yc&1):3+(7==this.j?2:0)},function(a){Ze(this,a,0,Cf);this.b-=this.u?9:3+(7==this.j?2:0)}];function xe(a){th[a>>12].call(this,a)}
@ -289,14 +289,15 @@ this.Sa):td(this.f,this.Sa)};h.Lg=function(a,b){if(!b)switch(this.j){case V.EMPT
h.bi=function(a){switch(this.j){case V.bd:this.b&W.eb&&(this.b&=~W.eb,this.w[this.u]=a&255,E(this)&&F(this,this.type+".writeByte("+this.u+","+v(a,2,!0)+")",!0,!0),++this.u>=this.w.length&&qj(this));break;case V.tb:case V.hc:case V.Mc:if(this.b&W.eb)switch(this.b&=~W.eb,this.u++){case 0:this.G=a;break;case 1:if(this.I=a,this.j==V.tb)pj(this);else{var b=this.j==V.Mc,c=0,d=this.b&W.ud?1:0,e=this.g[d],e=e&&e.ea,f=this.I&sj.cb,g=this.G&tj.cb;this.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Ga);if(e)if(this.i|=uj.Ga,E(this)&&
F(this,this.type+".writeSector("+f+":0:"+g+")",!0,!0),d=e.seek(f,0,g,!0))for(b&&(d.Ef=!0),b=0,f=this.w.length;b<f;){if(!e.write(d,b,this.w[b]&255)){c=rj.pd;break}b++}else c=rj.qd;else c=d?rj.gd:rj.fd;qj(this,c)}}}this.C=a};var W=Pb.kf,sj=Pb.nf,tj=Pb.mf,uj=Pb.lf,V=Pb.xa,rj=Pb.ERROR,vj="FILL EMPTY WRITE READ UNUSED RDSTAT WRDEL RDERR".split(" "),wj={},oj=(wj[65144]=[null,null,Fd.prototype.Kg,Fd.prototype.ai,"RXCS"],wj[65146]=[null,null,Fd.prototype.Lg,Fd.prototype.bi,"RXDB"],wj);
function xj(a){x.call(this,"Debugger",a);this.aa=+a.base||16;this.za=null;this.U=["{","}"];this.ka=["[","]"];this.w=0;this.O=!1;this.u=-1;this.j=[];this.S={}}p(xj,x);xj.prototype.re=function(){return-1};xj.prototype.Bd=function(){};
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.O?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}function zj(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}
function Aj(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=Math.trunc(f/e);break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;
case "&":d=f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;case "><":d=f;if(e=35-(e&255))0>d&&(d+=Math.pow(2,36)),d=0<e?d*Math.pow(2,e):Math.trunc(d/Math.pow(2,-e));break;default:return!1}a.push(zj(d))}return!0}
function Bj(a,b,c,d,e,f){var g,k,l,m=!1,n=!1,q=[],t=[],r=a.aa;for(a.aa=e;c<d;){k=b[c++].trim();l=c<d?b[c++]:"";if(k)n=Cj(a,k,null,f,n);else if("{"==l){k=1;for(n=c;c<d;)if(c++,l=c<b.length?b[c++]:"","{"==l)k++;else if("}"==l&&!--k)break;n=Bj(a,b,n,c-1,a.aa,f);k=c<d?b[c++].trim():"";l=c<d?b[c++]:""}else{if("-"!=l){m=!0;break}n=!0;continue}if(void 0===n)if(null==a.za&&f)a.za=k,n=0;else{m=!0;f=!f;break}q.push(zj(n));if(!l)break;t.length&&Dj[l]<Dj[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.aa="><"==l?10:e;
n=!1}Aj(q,t)&&1==q.length||(m=!0);m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.aa=r;return g}function Ej(a,b,c){var d;a.za=null;b&&("{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2><"),b=b.split(/(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Bj(a,b,0,b.length,a.aa,c),void 0!==d&&!1===c&&Fj(a,null,d));return d}
function Cj(a,b,c,d,e){var f;null!=b?(f=a.re(b),0<=f?f=a.Bd(f):(f=a.S[b],null==f&&(f=ma(e?"-"+b:b,a.aa),e=!1)),null!=f?e&&(f=-f):d||a.v("invalid "+(c?c:"value")+": "+b)):d||a.v("missing "+(c||"value"));return f}
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.O?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}
function zj(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?d=a%b:a>=2*b&&(d=a%(2*b)));a!=d&&(a=d);return a}
function Aj(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=zj(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(zj(e))}return!0}
function Bj(a,b,c,d,e,f){var g,k,l,m=!1,n=0,q=[],t=[],r=a.aa;for(a.aa=e;c<d;){k=b[c++].trim();l=c<d?b[c++]:"";if(k)n=Cj(a,k,null,f,n);else if("{"==l){k=1;for(n=c;c<d;)if(c++,l=c<b.length?b[c++]:"","{"==l)k++;else if("}"==l&&!--k)break;n=Bj(a,b,n,c-1,a.aa,f);k=c<d?b[c++].trim():"";l=c<d?b[c++]:""}else{if("~"==l||"^-"==l){n=1;continue}if("-"==l){n=-1;continue}m=!0;break}if(void 0===n)if(null==a.za&&f)a.za=k,n=0;else{m=!0;f=!f;break}q.push(zj(n));if(!l)break;t.length&&Dj[l]<Dj[t[t.length-1]]&&Aj(q,t,
1);t.push(l);a.aa="^_"==l?10:e;n=0}Aj(q,t)&&1==q.length||(m=!0);m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.aa=r;return g}function Ej(a,b,c){var d;a.za=null;b&&("{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_"),b=b.split(/(\{|}|\|\||&&|\||\^!|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Bj(a,b,0,b.length,a.aa,c),void 0!==d&&!1===c&&Fj(a,null,d));return d}
function Cj(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.re(b),0<=f?f=a.Bd(f):(f=a.S[b],null==f&&(0>e&&(b="-"+b,e=0),f=ma(b,a.aa))),null!=f?0>e?f=-f:0<e&&(f|=-1):d||a.v("invalid "+(c?c:"value")+": "+b)):d||a.v("missing "+(c||"value"));return f}
function Fj(a,b,c){var d,e=!1;if(void 0!==c){e=!0;if(8==a.aa)d=c+". "+u(c,0,!0);else{d=c;var f=4,g="";if(!f||4<f)f=4;for(var k=0;k<f;k++)g&&(g=","+g),g=pa(d&255,8)+g,d>>=8;d=v(c,0,!0)+" "+c+". "+u(c,0,!0)+" "+("0b"+g)}32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.v((null!=b?b+": ":"")+d);return e}function Gj(a,b){if(b)return Fj(a,b,a.S[b]);var c=0;for(b in a.S)Fj(a,b,a.S[b]),c++;return 0<c}
function K(a,b,c){c=void 0===c?0:c;switch(a.aa){case 2:a=pa(b,0<c?c:0);break;case 8:a=u(b,0<c?(c+2)/3|0:0);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Dj={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10,"{":11,"}":11};
function K(a,b,c){c=void 0===c?0:c;switch(a.aa){case 2:a=pa(b,0<c?c:0);break;case 8:a=u(b,0<c?(c+2)/3|0:0);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Dj={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11};
function Hj(a){xj.call(this,a);this.Ia=!1;this.U=["(",")"];this.ka=[];this.G=X();this.Ha=X();this.N=X();this.B=[];this.b=this.L=this.C=[];Ij(this);this.P=this.ha=0;this.i=[];this.ta=void 0;Jj(this);this.D=this;this.ma={};this.ja=this.ke=0;this.R=null;this.M=[];Kj(this,a.messages);this.ya=a.commands;this.La=Lj;this.X=[];this.I=0;this.Qa=this.ua=null;this.w=this.Ka=this.Ja=this.Y=this.qa=0;this.g=this.W=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
(global[y]=function(a){return le(b,a)})}p(Hj,xj);function Mj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Wa:!1,aa:c}}h=Hj.prototype;h.Hd=function(a,b){a.K=b;a.Wa=!1;a.aa=void 0;return a};function Nj(a){return[a.K,a.Na,a.aa,a.Wa,a.Qc]}function Oj(a,b){var c=X(b[0],b[1],b[2]);c.Wa=b[3];b[4]&&(c.he=yj(a,c.Qc=b[4]));return c}
h.Ca=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Kj(this,a);1140>this.f.ka&&(this.X=this.X.concat(Pj));1145>this.f.ka&&(this.X=this.X.concat(Qj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Mj(Rj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
@ -340,20 +341,20 @@ function uk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(mk+b):(a.O&&(a.v("ende
Rj(a,g[1],!0);if(q)if(a.N=q,void 0===g[2])a.v("begin assemble at "+Uj(a,q)),a.O=!0,H(a.J);else{var t;a.v("not supported yet");t=[];if(t.length){for(var r=0;r<t.length;r++)a.Qd(q,t[r],1);a.v(vk(a,a.N))}}break;case "b":a:{var D=g[0],A=g[1],B=b;if("?"==A)a.v("breakpoint commands:"),a.v("\tbp #\tset exec breakpoint"),a.v("\tbr #\tset read breakpoint"),a.v("\tbw #\tset write breakpoint"),a.v("\tbc #\tclear breakpoint (* to clear all)"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
else{var J=D.charAt(1);if("l"==J){var ub;ub=0+tk(a,a.b);ub+=tk(a,a.L);(ub+=tk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Cd=+A||0;A&&(a.ha=Cd);a.v("break after "+Cd+" instruction(s)")}else if(void 0===A)a.v("missing breakpoint address");else{var sa=X();if("*"!=A&&(sa=Rj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Ij(a),a.v("all breakpoints cleared")):rk(a,a.b,sa)||rk(a,a.L,sa)||rk(a,a.C,sa)||a.v("breakpoint missing: "+Uj(a,sa)):null!=sa.K&&(Tj(a,sa,B),"p"==J?a.Bb(a.b,sa):"r"==J?a.Bb(a.L,sa):"w"==
J?a.Bb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Va&&(a.Va.value="");break;case "d":a:{var Yb,jb=g[0],Ta=g[1],kb=g[2],ol=g[3];if("?"==Ta){var Zb="";for(Yb in Rb)a.ma[Yb]&&(Zb&&(Zb+=","),Zb+=Yb);Zb+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
a.v("\tdh [p] [n] dump n instructions from history position p");Zb.length&&a.v("dump extension commands:\n\t"+Zb)}else if("state"==Ta){var ff=Qk(a.J,!0);"console"==kb?console.log(ff):(a.Va&&(a.Va.value=""),ff&&a.v(ff))}else if("symbols"==Ta)for(var gf=0;gf<a.B.length;gf++){var hf=a.B[gf],$b;for($b in hf.ia)if("."!=$b.charAt(0)){var wi=hf.ia[$b].o;if(void 0!==wi){var xi=hf.ia[$b].l;xi&&($b=xi);a.v(K(a,wi)+" "+$b)}}}else{if("d"==jb){for(Yb in Rb)if(g[1]==Yb){var yi=a.ma[Yb];yi?(g.shift(),g.shift(),
yi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.Qa||"dw")}else a.Qa=jb;if("dh"==jb){var zi=Ta,Ai=kb,Bi="",Ci=0,Ja=a.P,Ua=a.i;if(Ua.length){var Ca=+zi||a.ta,Lc=+Ai||10;isNaN(Ca)?Ca=Lc:Bi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ja-=Ca;0>Ja&&(null==Ua[Ua.length-1].K?(Ca=Ja+Ca,Ja=0):Ja+=Ua.length);var jf=[];"call"==Ai&&(Lc=1E5,jf=["CALL"]);for(void 0!==zi&&a.v(Ca+" instructions earlier:");0<Lc&&Ja!=a.P;){var Di=Ua[Ja++];if(null==Di.K)break;var Mc=X(Di.K),
pl=Ca--,Ei=vk(a,Mc,"history",pl);(!jf.length||0<=Ei.indexOf(jf[0]))&&a.v(Ei);Mc.yd&&(Ja+=Mc.yd,Lc-=Mc.yd,Ca-=Mc.yd);Ja>=Ua.length&&(Ja=0);a.ta=Ca;Ci++;Lc--}}Ci||(a.v("no "+Bi+"history available"),a.ta=void 0)}else{var oa=Rj(a,Ta);if(oa)if("da"==jb){var kf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,kf);a.v(ya("",kf?12:19)+pa(oa.K,kf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
pa(O[0],22,3)+" "+u(O[0],8))):(a.v(" OFFSET: "+pa(O[1],13,3)+" "+u(O[1],8)),a.v("+ "+Rk[O[2]]+"PAR"+O[3]+": "+pa(O[4],22,3)+" "+u(O[4],8)),a.v("& MMUMASK: "+pa(O[5],22,3)+" "+u(O[5],8)),a.v("= PHYSICAL: "+pa(O[0],22,3)+" "+u(O[0],8)))}else{var wb=0,lf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||ol,wb=Cj(a,kb);else{var Fi=Rj(a,kb);Fi&&(wb=Fi.K-oa.K)}0>wb&&(wb=0);65536<wb&&(wb=65536)}var rl=a.aa;oa.aa&&(a.aa=oa.aa);for(var xb="dd"==jb?4:"db"==jb?1:2,Ld=xb*wb||128,mf=
lf?16:a.aa,sl=(Ld+mf-1)/mf|0||1,yb="";sl--&&0<Ld;){for(var zb="",nf="",Ta=Uj(a,oa),Md=mf,Nc=0,Oc=0;0<Md&&0<Ld;){var ac=1,Nd=1==xb?a.Pd(oa,ac):a.Ta(oa,ac=2),Nc=Nc|Nd<<(Oc<<3),Oc=Oc+ac;Oc==xb&&(lf?(zb&&(zb+=","),zb+="0x"+v(Nc,xb<<1)):(zb+=K(a,Nc,xb<<3),zb+=1==xb?9==Md?"-":" ":" "),Nc=Oc=0);Md-=ac;for(Ld-=ac;1==xb&&ac--;)var of=Nd&255,nf=nf+(32<=of&&128>of?String.fromCharCode(of):"."),Nd=Nd>>8}yb&&(yb+="\n");yb=lf?yb+(zb+","):yb+(Ta+": "+zb+(Md?"":" "+nf))}yb&&a.v(yb);a.Ha=oa;a.aa=rl}}}}break;case "e":if("else"==
g[0])break;var bc,pf,qf,rf,sf=g[0],tf=g[1];"eb"==sf?(bc=1,pf=255,qf=a.Pd,rf=a.Qd):"e"==sf||"ew"==sf?(bc=2,pf=65535,qf=a.Ta,rf=a.Le):tf=null;if(null==tf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Od=Rj(a,tf);if(Od)for(var Pd=2;Pd<g.length;Pd++){var Pc=Ej(a,g[Pd]);if(void 0===Pc){a.v("unrecognized value: "+g[Pd]);break}Pc&~pf&&a.v("warning: "+v(Pc)+" exceeds "+bc+"-byte value");a.v("changing "+Uj(a,Od)+(E(a,16)?
"":" from "+K(a,qf.call(a,Od),bc<<3))+" to "+K(a,Pc,bc<<3));rf.call(a,Od,Pc,bc)}}break;case "g":a:{var Gi=g[1],tl=b;if(void 0!==Gi){var uf=Rj(a,Gi,!0);if(!uf)break a;Tj(a,uf,tl);a.Bb(a.b,uf,!0)}kk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.da()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var vf;var Qc=b.substr(2),Qc=za(Qc);Ej(a,Qc)?(c||a.v("true: "+Qc),vf=!0):(c||a.v("false: "+Qc),vf=!1);vf||(d=!1);break}f=!0;break;case "k":var ul=g[0];if("?"==g[1])a.v("stack trace commands:"),
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var wf=0,xf=X(),Rc=X(a.f.g[6]);for(a.v("stack trace for "+Uj(a,Rc));10>wf;){for(var Ab=null,vl=256;65536>Rc.K>>>0;){xf.K=a.Ta(Rc,2);if(null==Rc.K||!vl--)break;if(!(xf.K&1)){for(var wl=a,Qd=xf,Hi=null,Sc=Qd.K,Ii=Sc,yf=1;6>=yf&&Sc;yf++){if(2<yf){Qd.K=Sc;var Rd=vk(wl,Qd);if(0<=Rd.indexOf("JSR")){var Ji=Rd.indexOf(" ");if(Sc+(Rd.indexOf(" ",Ji+1)-Ji-1)/2==Ii){Hi=Rd;break}}}Sc-=2}Qd.K=Ii;if(Ab=Hi)break}}if(!Ab||null==Ab)break;var Ki=
null;if("ks"==ul){var Li=Ab.match(/[0-9A-F]+$/);Li&&(Ki=Nk(a,Li[0]))}Ab=ya(Ab,50)+" ;"+(Ki||"stack="+Uj(a,Rc));a.v(Ab);wf++}wf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Nk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Rb)if(T==Va){lb=Rb[Va];Wa=!!(a.ja&lb);break}if(!lb){a.v("unknown message category: "+
a.v("\tdh [p] [n] dump n instructions from history position p");Zb.length&&a.v("dump extension commands:\n\t"+Zb)}else if("state"==Ta){var gf=Qk(a.J,!0);"console"==kb?console.log(gf):(a.Va&&(a.Va.value=""),gf&&a.v(gf))}else if("symbols"==Ta)for(var hf=0;hf<a.B.length;hf++){var jf=a.B[hf],$b;for($b in jf.ia)if("."!=$b.charAt(0)){var wi=jf.ia[$b].o;if(void 0!==wi){var xi=jf.ia[$b].l;xi&&($b=xi);a.v(K(a,wi)+" "+$b)}}}else{if("d"==jb){for(Yb in Rb)if(g[1]==Yb){var yi=a.ma[Yb];yi?(g.shift(),g.shift(),
yi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.Qa||"dw")}else a.Qa=jb;if("dh"==jb){var zi=Ta,Ai=kb,Bi="",Ci=0,Ja=a.P,Ua=a.i;if(Ua.length){var Ca=+zi||a.ta,Lc=+Ai||10;isNaN(Ca)?Ca=Lc:Bi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ja-=Ca;0>Ja&&(null==Ua[Ua.length-1].K?(Ca=Ja+Ca,Ja=0):Ja+=Ua.length);var kf=[];"call"==Ai&&(Lc=1E5,kf=["CALL"]);for(void 0!==zi&&a.v(Ca+" instructions earlier:");0<Lc&&Ja!=a.P;){var Di=Ua[Ja++];if(null==Di.K)break;var Mc=X(Di.K),
pl=Ca--,Ei=vk(a,Mc,"history",pl);(!kf.length||0<=Ei.indexOf(kf[0]))&&a.v(Ei);Mc.yd&&(Ja+=Mc.yd,Lc-=Mc.yd,Ca-=Mc.yd);Ja>=Ua.length&&(Ja=0);a.ta=Ca;Ci++;Lc--}}Ci||(a.v("no "+Bi+"history available"),a.ta=void 0)}else{var oa=Rj(a,Ta);if(oa)if("da"==jb){var lf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,lf);a.v(ya("",lf?12:19)+pa(oa.K,lf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
pa(O[0],22,3)+" "+u(O[0],8))):(a.v(" OFFSET: "+pa(O[1],13,3)+" "+u(O[1],8)),a.v("+ "+Rk[O[2]]+"PAR"+O[3]+": "+pa(O[4],22,3)+" "+u(O[4],8)),a.v("& MMUMASK: "+pa(O[5],22,3)+" "+u(O[5],8)),a.v("= PHYSICAL: "+pa(O[0],22,3)+" "+u(O[0],8)))}else{var wb=0,mf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||ol,wb=Cj(a,kb);else{var Fi=Rj(a,kb);Fi&&(wb=Fi.K-oa.K)}0>wb&&(wb=0);65536<wb&&(wb=65536)}var rl=a.aa;oa.aa&&(a.aa=oa.aa);for(var xb="dd"==jb?4:"db"==jb?1:2,Ld=xb*wb||128,nf=
mf?16:a.aa,sl=(Ld+nf-1)/nf|0||1,yb="";sl--&&0<Ld;){for(var zb="",of="",Ta=Uj(a,oa),Md=nf,Nc=0,Oc=0;0<Md&&0<Ld;){var ac=1,Nd=1==xb?a.Pd(oa,ac):a.Ta(oa,ac=2),Nc=Nc|Nd<<(Oc<<3),Oc=Oc+ac;Oc==xb&&(mf?(zb&&(zb+=","),zb+="0x"+v(Nc,xb<<1)):(zb+=K(a,Nc,xb<<3),zb+=1==xb?9==Md?"-":" ":" "),Nc=Oc=0);Md-=ac;for(Ld-=ac;1==xb&&ac--;)var pf=Nd&255,of=of+(32<=pf&&128>pf?String.fromCharCode(pf):"."),Nd=Nd>>8}yb&&(yb+="\n");yb=mf?yb+(zb+","):yb+(Ta+": "+zb+(Md?"":" "+of))}yb&&a.v(yb);a.Ha=oa;a.aa=rl}}}}break;case "e":if("else"==
g[0])break;var bc,qf,rf,sf,tf=g[0],uf=g[1];"eb"==tf?(bc=1,qf=255,rf=a.Pd,sf=a.Qd):"e"==tf||"ew"==tf?(bc=2,qf=65535,rf=a.Ta,sf=a.Le):uf=null;if(null==uf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Od=Rj(a,uf);if(Od)for(var Pd=2;Pd<g.length;Pd++){var Pc=Ej(a,g[Pd]);if(void 0===Pc){a.v("unrecognized value: "+g[Pd]);break}Pc&~qf&&a.v("warning: "+v(Pc)+" exceeds "+bc+"-byte value");a.v("changing "+Uj(a,Od)+(E(a,16)?
"":" from "+K(a,rf.call(a,Od),bc<<3))+" to "+K(a,Pc,bc<<3));sf.call(a,Od,Pc,bc)}}break;case "g":a:{var Gi=g[1],tl=b;if(void 0!==Gi){var vf=Rj(a,Gi,!0);if(!vf)break a;Tj(a,vf,tl);a.Bb(a.b,vf,!0)}kk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.da()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var wf;var Qc=b.substr(2),Qc=za(Qc);Ej(a,Qc)?(c||a.v("true: "+Qc),wf=!0):(c||a.v("false: "+Qc),wf=!1);wf||(d=!1);break}f=!0;break;case "k":var ul=g[0];if("?"==g[1])a.v("stack trace commands:"),
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var xf=0,yf=X(),Rc=X(a.f.g[6]);for(a.v("stack trace for "+Uj(a,Rc));10>xf;){for(var Ab=null,vl=256;65536>Rc.K>>>0;){yf.K=a.Ta(Rc,2);if(null==Rc.K||!vl--)break;if(!(yf.K&1)){for(var wl=a,Qd=yf,Hi=null,Sc=Qd.K,Ii=Sc,zf=1;6>=zf&&Sc;zf++){if(2<zf){Qd.K=Sc;var Rd=vk(wl,Qd);if(0<=Rd.indexOf("JSR")){var Ji=Rd.indexOf(" ");if(Sc+(Rd.indexOf(" ",Ji+1)-Ji-1)/2==Ii){Hi=Rd;break}}}Sc-=2}Qd.K=Ii;if(Ab=Hi)break}}if(!Ab||null==Ab)break;var Ki=
null;if("ks"==ul){var Li=Ab.match(/[0-9A-F]+$/);Li&&(Ki=Nk(a,Li[0]))}Ab=ya(Ab,50)+" ;"+(Ki||"stack="+Uj(a,Rc));a.v(Ab);xf++}xf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Nk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Rb)if(T==Va){lb=Rb[Va];Wa=!!(a.ja&lb);break}if(!lb){a.v("unknown message category: "+
T);break a}}if(lb)if("on"==g[2])a.ja|=lb,Wa=!0;else if("off"==g[2]&&(a.ja&=~lb,Wa=!1,1073741824==lb)){for(var Mi=1E3<=a.M.length?a.M.length-1E3:0;Mi<a.M.length;)a.v(a.M[Mi++]);a.M=[]}}var xl=0,Tc="";for(Va in Rb)if(!T||T==Va){var yl=!!(a.ja&Rb[Va]);if(null===Wa||Wa==yl)Tc&&(Tc+=","),++xl%10||(Tc+="\n\t"),"key"==Va&&(Va="keys"),Tc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
(Tc||"none"));Jj(a)}break;case "p":if("print"==g[0]){Ok(a,b.substr(5));break}var zl=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Ni="pr"==zl?1:0,Oi=1+Ni;if(a.I)a.v("step in progress");else{var Sd=X(a.f.g[7]),cc=a.Ta(Sd);3==cc||4==cc||34816==(cc&65280)||32256==(cc&65024)||35072==(cc&65280)?(a.I=Oi,Sj(Sd,2)):2048==(cc&65024)&&(vk(a,Sd),a.I=Oi);a.I?(a.Bb(a.b,Sd,!0),kk(a)||(a.J&&qe(a.J),a.I=0)):Pk(a,Ni?"tr":
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}nk(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Uc=+g[2];if(8==Uc||10==Uc||16==Uc)a.aa=Uc;else{a.v("invalid base: "+Uc);break}}a.v("default base: "+a.aa);break;case "cs":var Vc;void 0!==g[3]&&(Vc=+g[3]);switch(g[2]){case "int":a.f.Ob=Vc;break;case "start":a.f.pc=Vc;break;case "stop":a.f.Rb=Vc;break;default:a.v("unknown cs option");break a}void 0!==Vc&&ie(a.f);a.v("checksums "+(a.f.A.Nb?"enabled":"disabled"));break;case "sp":void 0!==
g[2]&&(ne(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.xb.toFixed(2)+"Mhz")+" ("+a.f.mb+"x)");break;default:if(g[1]){a.v("unknown option: "+g[1]);break}case "?":a.v("debugger options:"),a.v("\tbase #\t\tset default base to #"),a.v("\tcs int #\tset checksum cycle interval to #"),a.v("\tcs start #\tset checksum cycle start count to #"),a.v("\tcs stop #\tset checksum cycle stop count to #"),a.v("\tsp #\t\tset speed multiplier to #")}break;case "t":Pk(a,
g[0],g[1]);break;case "u":ok(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Mk(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Hb||"PDP11")+" version 1.34.2 ("+a.f.ka+",RELEASE"+(Jb?",TYPEDARRAYS":Ib?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Ok(a,b.substr(1));break}var zf="commands:",Af;for(Af in Sk)zf+="\n"+ya(Af,9)+Sk[Af];bf(a)||(zf+="\nnote: history disabled if no exec breakpoints");a.v(zf);break;default:f=!0}f&&(a.v("unknown command: "+
g[0],g[1]);break;case "u":ok(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Mk(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Hb||"PDP11")+" version 1.34.2 ("+a.f.ka+",RELEASE"+(Jb?",TYPEDARRAYS":Ib?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Ok(a,b.substr(1));break}var Af="commands:",Bf;for(Bf in Sk)Af+="\n"+ya(Bf,9)+Sk[Bf];bf(a)||(Af+="\nnote: history disabled if no exec breakpoints");a.v(Af);break;default:f=!0}f&&(a.v("unknown command: "+
b),d=!1)}}catch(Qi){a.v("debugger error: "+(Qi.stack||Qi.message)),d=!1}return d}function le(a,b,c){b=yj(a,b,c);for(var d in b)if(!uk(a,b[+d]))return!1;return!0}
var Sk={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},xk=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
Zj=20,ak=21,bk=22,ck=23,dk=24,ek=25,fk=26,gk=27,Xj=28,hk=29,ik=30,Vj={SP:6,PC:7,PS:Zj,PI:ak,ER:bk,SL:ck,M0:dk,M1:ek,M2:fk,M3:gk,AR:Xj,DR:hk,SR:ik},Yj="R0 R1 R2 R3 R4 R5 SP PC A0 A1 A2 A3 A4 A5 A6 A7 S0 S1 S2 S3 PS PI ER SL M0 M1 M2 M3 AR DR SR".split(" "),Rk="KI KD SI SD ?? ?? UI UD".split(" "),Ek=7,Fk=56,Z=Fk|Ek,Dk=4032,Y=4096,zk=8192,Ak=12288,Bk=24576,Ck=32768,yk=61440,Lj={61440:{4096:[62,Dk,Z],8192:[47,Dk,Z],12288:[18,Dk,Z],16384:[14,Dk,Z],20480:[16,Dk,Z],24576:[3,Dk,Z],36864:[63,Dk,Z],40960:[48,