1 Star 1 Fork 2

xioxin / jslinux

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
cpux86-ta.js 128.80 KB
一键复制 编辑 原始数据 按行查看 历史
xioxin 提交于 2013-10-28 17:11 . updata
/*
PC Emulator
Copyright (c) 2011 Fabrice Bellard
Redistribution or commercial use is prohibited without the author's
permission.
*/
"use strict";var aa=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];var ba=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14];var ca=[0,1,2,3,4,5,6,7,8,0,1,2,3,4,5,6,7,8,0,1,2,3,4,5,6,7,8,0,1,2,3,4];function CPU_X86(){var i,da;this.regs=new Array();for(i=0;i<8;i++)this.regs[i]=0;this.eip=0;this.cc_op=0;this.cc_dst=0;this.cc_src=0;this.cc_op2=0;this.cc_dst2=0;this.df=1;this.eflags=0x2;this.cycle_count=0;this.hard_irq=0;this.hard_intno=-1;this.cpl=0;this.cr0=(1<<0);this.cr2=0;this.cr3=0;this.cr4=0;this.idt={base:0,limit:0};this.gdt={base:0,limit:0};this.segs=new Array();for(i=0;i<7;i++){this.segs[i]={selector:0,base:0,limit:0,flags:0};}this.segs[2].flags=(1<<22);this.segs[1].flags=(1<<22);this.tr={selector:0,base:0,limit:0,flags:0};this.ldt={selector:0,base:0,limit:0,flags:0};this.halted=0;this.phys_mem=null;da=0x100000;this.tlb_read_kernel=new Int32Array(da);this.tlb_write_kernel=new Int32Array(da);this.tlb_read_user=new Int32Array(da);this.tlb_write_user=new Int32Array(da);for(i=0;i<da;i++){this.tlb_read_kernel[i]=-1;this.tlb_write_kernel[i]=-1;this.tlb_read_user[i]=-1;this.tlb_write_user[i]=-1;}this.tlb_pages=new Int32Array(2048);this.tlb_pages_count=0;}CPU_X86.prototype.phys_mem_resize=function(ea){this.mem_size=ea;ea+=((15+3)&~3);this.phys_mem=new ArrayBuffer(ea);this.phys_mem8=new Uint8Array(this.phys_mem,0,ea);this.phys_mem16=new Uint16Array(this.phys_mem,0,ea/2);this.phys_mem32=new Int32Array(this.phys_mem,0,ea/4);};CPU_X86.prototype.ld8_phys=function(fa){return this.phys_mem8[fa];};CPU_X86.prototype.st8_phys=function(fa,ga){this.phys_mem8[fa]=ga;};CPU_X86.prototype.ld32_phys=function(fa){return this.phys_mem32[fa>>2];};CPU_X86.prototype.st32_phys=function(fa,ga){this.phys_mem32[fa>>2]=ga;};CPU_X86.prototype.tlb_set_page=function(fa,ha,ia,ja){var i,ga,j;ha&=-4096;fa&=-4096;ga=fa^ha;i=fa>>>12;if(this.tlb_read_kernel[i]==-1){if(this.tlb_pages_count>=2048){this.tlb_flush_all1((i-1)&0xfffff);}this.tlb_pages[this.tlb_pages_count++]=i;}this.tlb_read_kernel[i]=ga;if(ia){this.tlb_write_kernel[i]=ga;}else{this.tlb_write_kernel[i]=-1;}if(ja){this.tlb_read_user[i]=ga;if(ia){this.tlb_write_user[i]=ga;}else{this.tlb_write_user[i]=-1;}}else{this.tlb_read_user[i]=-1;this.tlb_write_user[i]=-1;}};CPU_X86.prototype.tlb_flush_page=function(fa){var i;i=fa>>>12;this.tlb_read_kernel[i]=-1;this.tlb_write_kernel[i]=-1;this.tlb_read_user[i]=-1;this.tlb_write_user[i]=-1;};CPU_X86.prototype.tlb_flush_all=function(){var i,j,n,ka;ka=this.tlb_pages;n=this.tlb_pages_count;for(j=0;j<n;j++){i=ka[j];this.tlb_read_kernel[i]=-1;this.tlb_write_kernel[i]=-1;this.tlb_read_user[i]=-1;this.tlb_write_user[i]=-1;}this.tlb_pages_count=0;};CPU_X86.prototype.tlb_flush_all1=function(la){var i,j,n,ka,ma;ka=this.tlb_pages;n=this.tlb_pages_count;ma=0;for(j=0;j<n;j++){i=ka[j];if(i==la){ka[ma++]=i;}else{this.tlb_read_kernel[i]=-1;this.tlb_write_kernel[i]=-1;this.tlb_read_user[i]=-1;this.tlb_write_user[i]=-1;}}this.tlb_pages_count=ma;};CPU_X86.prototype.write_string=function(fa,na){var i;for(i=0;i<na.length;i++){this.st8_phys(fa++,na.charCodeAt(i)&0xff);}this.st8_phys(fa,0);};function oa(ga,n){var i,s;var h="0123456789ABCDEF";s="";for(i=n-1;i>=0;i--){s=s+h[(ga>>>(i*4))&15];}return s;}function pa(n){return oa(n,8);}function qa(n){return oa(n,2);}function ra(n){return oa(n,4);}CPU_X86.prototype.dump_short=function(){console.log(" EIP="+pa(this.eip)+" EAX="+pa(this.regs[0])+" ECX="+pa(this.regs[1])+" EDX="+pa(this.regs[2])+" EBX="+pa(this.regs[3]));console.log("EFL="+pa(this.eflags)+" ESP="+pa(this.regs[4])+" EBP="+pa(this.regs[5])+" ESI="+pa(this.regs[6])+" EDI="+pa(this.regs[7]));};CPU_X86.prototype.dump=function(){var i,sa,na;var ta=[" ES"," CS"," SS"," DS"," FS"," GS","LDT"," TR"];this.dump_short();console.log("TSC="+pa(this.cycle_count)+" OP="+qa(this.cc_op)+" SRC="+pa(this.cc_src)+" DST="+pa(this.cc_dst)+" OP2="+qa(this.cc_op2)+" DST2="+pa(this.cc_dst2));console.log("CPL="+this.cpl+" CR0="+pa(this.cr0)+" CR2="+pa(this.cr2)+" CR3="+pa(this.cr3)+" CR4="+pa(this.cr4));na="";for(i=0;i<8;i++){if(i==6)sa=this.ldt;else if(i==7)sa=this.tr;else sa=this.segs[i];na+=ta[i]+"="+ra(sa.selector)+" "+pa(sa.base)+" "+pa(sa.limit)+" "+ra((sa.flags>>8)&0xf0ff);if(i&1){console.log(na);na="";}else{na+=" ";}}sa=this.gdt;na="GDT= "+pa(sa.base)+" "+pa(sa.limit)+" ";sa=this.idt;na+="IDT= "+pa(sa.base)+" "+pa(sa.limit);console.log(na);};CPU_X86.prototype.exec_internal=function(ua,va){var wa,fa,xa;var ya,za,Aa,Ba,Ca;var Da,Ea,Fa,b,Ga,ga,Ha,Ia,Ja,Ka,La,Ma;var Na,Oa,Pa,Qa,Ra,Sa;var Ta,Ua;var Va,Wa;var Xa,Ya,Za,ab,bb,cb;function db(){var eb;fb(fa,0,wa.cpl==3);eb=bb[fa>>>12]^fa;return Ta[eb];}function gb(){var Ua;return(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);}function hb(){var ga;ga=gb();fa++;ga|=gb()<<8;fa--;return ga;}function ib(){var Ua;return(((Ua=bb[fa>>>12])|fa)&1?hb():Va[(fa^Ua)>>1]);}function jb(){var ga;ga=gb();fa++;ga|=gb()<<8;fa++;ga|=gb()<<16;fa++;ga|=gb()<<24;fa-=3;return ga;}function kb(){var Ua;return(((Ua=bb[fa>>>12])|fa)&3?jb():Wa[(fa^Ua)>>2]);}function lb(){var eb;fb(fa,1,wa.cpl==3);eb=cb[fa>>>12]^fa;return Ta[eb];}function mb(){var eb;return((eb=cb[fa>>>12])==-1)?lb():Ta[fa^eb];}function nb(){var ga;ga=mb();fa++;ga|=mb()<<8;fa--;return ga;}function ob(){var eb;return((eb=cb[fa>>>12])|fa)&1?nb():Va[(fa^eb)>>1];}function pb(){var ga;ga=mb();fa++;ga|=mb()<<8;fa++;ga|=mb()<<16;fa++;ga|=mb()<<24;fa-=3;return ga;}function qb(){var eb;return((eb=cb[fa>>>12])|fa)&3?pb():Wa[(fa^eb)>>2];}function rb(ga){var eb;fb(fa,1,wa.cpl==3);eb=cb[fa>>>12]^fa;Ta[eb]=ga;}function sb(ga){var Ua;{Ua=cb[fa>>>12];if(Ua==-1){rb(ga);}else{Ta[fa^Ua]=ga;}};}function tb(ga){sb(ga);fa++;sb(ga>>8);fa--;}function ub(ga){var Ua;{Ua=cb[fa>>>12];if((Ua|fa)&1){tb(ga);}else{Va[(fa^Ua)>>1]=ga;}};}function vb(ga){sb(ga);fa++;sb(ga>>8);fa++;sb(ga>>16);fa++;sb(ga>>24);fa-=3;}function wb(ga){var Ua;{Ua=cb[fa>>>12];if((Ua|fa)&3){vb(ga);}else{Wa[(fa^Ua)>>2]=ga;}};}function xb(){var eb;fb(fa,0,0);eb=Xa[fa>>>12]^fa;return Ta[eb];}function yb(){var eb;return((eb=Xa[fa>>>12])==-1)?xb():Ta[fa^eb];}function zb(){var ga;ga=yb();fa++;ga|=yb()<<8;fa--;return ga;}function Ab(){var eb;return((eb=Xa[fa>>>12])|fa)&1?zb():Va[(fa^eb)>>1];}function Bb(){var ga;ga=yb();fa++;ga|=yb()<<8;fa++;ga|=yb()<<16;fa++;ga|=yb()<<24;fa-=3;return ga;}function Cb(){var eb;return((eb=Xa[fa>>>12])|fa)&3?Bb():Wa[(fa^eb)>>2];}function Db(ga){var eb;fb(fa,1,0);eb=Ya[fa>>>12]^fa;Ta[eb]=ga;}function Eb(ga){var eb;eb=Ya[fa>>>12];if(eb==-1){Db(ga);}else{Ta[fa^eb]=ga;}}function Fb(ga){Eb(ga);fa++;Eb(ga>>8);fa--;}function Gb(ga){var eb;eb=Ya[fa>>>12];if((eb|fa)&1){Fb(ga);}else{Va[(fa^eb)>>1]=ga;}}function Hb(ga){Eb(ga);fa++;Eb(ga>>8);fa++;Eb(ga>>16);fa++;Eb(ga>>24);fa-=3;}function Ib(ga){var eb;eb=Ya[fa>>>12];if((eb|fa)&3){Hb(ga);}else{Wa[(fa^eb)>>2]=ga;}}var Jb,Kb,Lb,Mb,Nb;function Ob(){var ga,Ha;ga=Ta[Kb++];;Ha=Ta[Kb++];;return ga|(Ha<<8);}function Pb(Ea){var base,fa,Qb,Rb,Sb,Tb;if(Qa&&(Da&(0x000f|0x0080))==0){switch((Ea&7)|((Ea>>3)&0x18)){case 0x04:Qb=Ta[Kb++];;base=Qb&7;if(base==5){{fa=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};}else{fa=xa[base];}Rb=(Qb>>3)&7;if(Rb!=4){fa=(fa+(xa[Rb]<<(Qb>>6)))>>0;}break;case 0x0c:Qb=Ta[Kb++];;fa=((Ta[Kb++]<<24)>>24);;base=Qb&7;fa=(fa+xa[base])>>0;Rb=(Qb>>3)&7;if(Rb!=4){fa=(fa+(xa[Rb]<<(Qb>>6)))>>0;}break;case 0x14:Qb=Ta[Kb++];;{fa=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};base=Qb&7;fa=(fa+xa[base])>>0;Rb=(Qb>>3)&7;if(Rb!=4){fa=(fa+(xa[Rb]<<(Qb>>6)))>>0;}break;case 0x05:{fa=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};break;case 0x00:case 0x01:case 0x02:case 0x03:case 0x06:case 0x07:base=Ea&7;fa=xa[base];break;case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0d:case 0x0e:case 0x0f:fa=((Ta[Kb++]<<24)>>24);;base=Ea&7;fa=(fa+xa[base])>>0;break;case 0x10:case 0x11:case 0x12:case 0x13:case 0x15:case 0x16:case 0x17:default:{fa=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};base=Ea&7;fa=(fa+xa[base])>>0;break;}return fa;}else if(Da&0x0080){if((Ea&0xc7)==0x06){fa=Ob();Tb=3;}else{switch(Ea>>6){case 0:fa=0;break;case 1:fa=((Ta[Kb++]<<24)>>24);;break;default:fa=Ob();break;}switch(Ea&7){case 0:fa=(fa+xa[3]+xa[6])&0xffff;Tb=3;break;case 1:fa=(fa+xa[3]+xa[7])&0xffff;Tb=3;break;case 2:fa=(fa+xa[5]+xa[6])&0xffff;Tb=2;break;case 3:fa=(fa+xa[5]+xa[7])&0xffff;Tb=2;break;case 4:fa=(fa+xa[6])&0xffff;Tb=3;break;case 5:fa=(fa+xa[7])&0xffff;Tb=3;break;case 6:fa=(fa+xa[5])&0xffff;Tb=2;break;case 7:default:fa=(fa+xa[3])&0xffff;Tb=3;break;}}Sb=Da&0x000f;if(Sb==0){Sb=Tb;}else{Sb--;}fa=(fa+wa.segs[Sb].base)>>0;return fa;}else{switch((Ea&7)|((Ea>>3)&0x18)){case 0x04:Qb=Ta[Kb++];;base=Qb&7;if(base==5){{fa=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};base=0;}else{fa=xa[base];}Rb=(Qb>>3)&7;if(Rb!=4){fa=(fa+(xa[Rb]<<(Qb>>6)))>>0;}break;case 0x0c:Qb=Ta[Kb++];;fa=((Ta[Kb++]<<24)>>24);;base=Qb&7;fa=(fa+xa[base])>>0;Rb=(Qb>>3)&7;if(Rb!=4){fa=(fa+(xa[Rb]<<(Qb>>6)))>>0;}break;case 0x14:Qb=Ta[Kb++];;{fa=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};base=Qb&7;fa=(fa+xa[base])>>0;Rb=(Qb>>3)&7;if(Rb!=4){fa=(fa+(xa[Rb]<<(Qb>>6)))>>0;}break;case 0x05:{fa=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};base=0;break;case 0x00:case 0x01:case 0x02:case 0x03:case 0x06:case 0x07:base=Ea&7;fa=xa[base];break;case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0d:case 0x0e:case 0x0f:fa=((Ta[Kb++]<<24)>>24);;base=Ea&7;fa=(fa+xa[base])>>0;break;case 0x10:case 0x11:case 0x12:case 0x13:case 0x15:case 0x16:case 0x17:default:{fa=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};base=Ea&7;fa=(fa+xa[base])>>0;break;}Sb=Da&0x000f;if(Sb==0){if(base==4||base==5)Sb=2;else Sb=3;}else{Sb--;}fa=(fa+wa.segs[Sb].base)>>0;return fa;}}function Ub(){var fa,Sb;if(Da&0x0080){fa=Ob();}else{{fa=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};}Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;fa=(fa+wa.segs[Sb].base)>>0;return fa;}function Vb(Ga,ga){if(Ga&4)xa[Ga&3]=(xa[Ga&3]&-65281)|((ga&0xff)<<8);else xa[Ga&3]=(xa[Ga&3]&-256)|(ga&0xff);}function Wb(Ga,ga){xa[Ga]=(xa[Ga]&-65536)|(ga&0xffff);}function Xb(Ja,Yb,Zb){var ac;switch(Ja){case 0:ya=Zb;Yb=(Yb+Zb)>>0;za=Yb;Aa=2;break;case 1:Yb=Yb|Zb;za=Yb;Aa=14;break;case 2:ac=bc();ya=Zb;Yb=(Yb+Zb+ac)>>0;za=Yb;Aa=ac?5:2;break;case 3:ac=bc();ya=Zb;Yb=(Yb-Zb-ac)>>0;za=Yb;Aa=ac?11:8;break;case 4:Yb=Yb&Zb;za=Yb;Aa=14;break;case 5:ya=Zb;Yb=(Yb-Zb)>>0;za=Yb;Aa=8;break;case 6:Yb=Yb^Zb;za=Yb;Aa=14;break;case 7:ya=Zb;za=(Yb-Zb)>>0;Aa=8;break;default:throw"arith"+cc+": invalid op";}return Yb;}function dc(Ja,Yb,Zb){var ac;switch(Ja){case 0:ya=Zb;Yb=(((Yb+Zb)<<16)>>16);za=Yb;Aa=1;break;case 1:Yb=(((Yb|Zb)<<16)>>16);za=Yb;Aa=13;break;case 2:ac=bc();ya=Zb;Yb=(((Yb+Zb+ac)<<16)>>16);za=Yb;Aa=ac?4:1;break;case 3:ac=bc();ya=Zb;Yb=(((Yb-Zb-ac)<<16)>>16);za=Yb;Aa=ac?10:7;break;case 4:Yb=(((Yb&Zb)<<16)>>16);za=Yb;Aa=13;break;case 5:ya=Zb;Yb=(((Yb-Zb)<<16)>>16);za=Yb;Aa=7;break;case 6:Yb=(((Yb^Zb)<<16)>>16);za=Yb;Aa=13;break;case 7:ya=Zb;za=(((Yb-Zb)<<16)>>16);Aa=7;break;default:throw"arith"+cc+": invalid op";}return Yb;}function ec(ga){if(Aa<25){Ba=Aa;Ca=za;}za=(((ga+1)<<16)>>16);Aa=26;return za;}function fc(ga){if(Aa<25){Ba=Aa;Ca=za;}za=(((ga-1)<<16)>>16);Aa=29;return za;}function gc(Ja,Yb,Zb){var ac;switch(Ja){case 0:ya=Zb;Yb=(((Yb+Zb)<<24)>>24);za=Yb;Aa=0;break;case 1:Yb=(((Yb|Zb)<<24)>>24);za=Yb;Aa=12;break;case 2:ac=bc();ya=Zb;Yb=(((Yb+Zb+ac)<<24)>>24);za=Yb;Aa=ac?3:0;break;case 3:ac=bc();ya=Zb;Yb=(((Yb-Zb-ac)<<24)>>24);za=Yb;Aa=ac?9:6;break;case 4:Yb=(((Yb&Zb)<<24)>>24);za=Yb;Aa=12;break;case 5:ya=Zb;Yb=(((Yb-Zb)<<24)>>24);za=Yb;Aa=6;break;case 6:Yb=(((Yb^Zb)<<24)>>24);za=Yb;Aa=12;break;case 7:ya=Zb;za=(((Yb-Zb)<<24)>>24);Aa=6;break;default:throw"arith"+cc+": invalid op";}return Yb;}function hc(ga){if(Aa<25){Ba=Aa;Ca=za;}za=(((ga+1)<<24)>>24);Aa=25;return za;}function ic(ga){if(Aa<25){Ba=Aa;Ca=za;}za=(((ga-1)<<24)>>24);Aa=28;return za;}function jc(Ja,Yb,Zb){var kc,ac;switch(Ja){case 0:if(Zb&0x1f){Zb&=0x7;Yb&=0xff;kc=Yb;Yb=(Yb<<Zb)|(Yb>>>(8-Zb));ya=lc();ya|=(Yb&0x0001)|(((kc^Yb)<<4)&0x0800);za=((ya>>6)&1)^1;Aa=24;}break;case 1:if(Zb&0x1f){Zb&=0x7;Yb&=0xff;kc=Yb;Yb=(Yb>>>Zb)|(Yb<<(8-Zb));ya=lc();ya|=((Yb>>7)&0x0001)|(((kc^Yb)<<4)&0x0800);za=((ya>>6)&1)^1;Aa=24;}break;case 2:Zb=ca[Zb&0x1f];if(Zb){Yb&=0xff;kc=Yb;ac=bc();Yb=(Yb<<Zb)|(ac<<(Zb-1));if(Zb>1)Yb|=kc>>>(9-Zb);ya=lc();ya|=(((kc^Yb)<<4)&0x0800)|((kc>>(8-Zb))&0x0001);za=((ya>>6)&1)^1;Aa=24;}break;case 3:Zb=ca[Zb&0x1f];if(Zb){Yb&=0xff;kc=Yb;ac=bc();Yb=(Yb>>>Zb)|(ac<<(8-Zb));if(Zb>1)Yb|=kc<<(9-Zb);ya=lc();ya|=(((kc^Yb)<<4)&0x0800)|((kc>>(Zb-1))&0x0001);za=((ya>>6)&1)^1;Aa=24;}break;case 4:case 6:Zb&=0x1f;if(Zb){ya=Yb<<(Zb-1);za=Yb=(((Yb<<Zb)<<24)>>24);Aa=15;}break;case 5:Zb&=0x1f;if(Zb){Yb&=0xff;ya=Yb>>>(Zb-1);za=Yb=(((Yb>>>Zb)<<24)>>24);Aa=18;}break;case 7:Zb&=0x1f;if(Zb){Yb=(Yb<<24)>>24;ya=Yb>>(Zb-1);za=Yb=(((Yb>>Zb)<<24)>>24);Aa=18;}break;default:throw"unsupported shift8="+Ja;}return Yb;}function mc(Ja,Yb,Zb){var kc,ac;switch(Ja){case 0:if(Zb&0x1f){Zb&=0xf;Yb&=0xffff;kc=Yb;Yb=(Yb<<Zb)|(Yb>>>(16-Zb));ya=lc();ya|=(Yb&0x0001)|(((kc^Yb)>>4)&0x0800);za=((ya>>6)&1)^1;Aa=24;}break;case 1:if(Zb&0x1f){Zb&=0xf;Yb&=0xffff;kc=Yb;Yb=(Yb>>>Zb)|(Yb<<(16-Zb));ya=lc();ya|=((Yb>>15)&0x0001)|(((kc^Yb)>>4)&0x0800);za=((ya>>6)&1)^1;Aa=24;}break;case 2:Zb=ba[Zb&0x1f];if(Zb){Yb&=0xffff;kc=Yb;ac=bc();Yb=(Yb<<Zb)|(ac<<(Zb-1));if(Zb>1)Yb|=kc>>>(17-Zb);ya=lc();ya|=(((kc^Yb)>>4)&0x0800)|((kc>>(16-Zb))&0x0001);za=((ya>>6)&1)^1;Aa=24;}break;case 3:Zb=ba[Zb&0x1f];if(Zb){Yb&=0xffff;kc=Yb;ac=bc();Yb=(Yb>>>Zb)|(ac<<(16-Zb));if(Zb>1)Yb|=kc<<(17-Zb);ya=lc();ya|=(((kc^Yb)>>4)&0x0800)|((kc>>(Zb-1))&0x0001);za=((ya>>6)&1)^1;Aa=24;}break;case 4:case 6:Zb&=0x1f;if(Zb){ya=Yb<<(Zb-1);za=Yb=(((Yb<<Zb)<<16)>>16);Aa=16;}break;case 5:Zb&=0x1f;if(Zb){Yb&=0xffff;ya=Yb>>>(Zb-1);za=Yb=(((Yb>>>Zb)<<16)>>16);Aa=19;}break;case 7:Zb&=0x1f;if(Zb){Yb=(Yb<<16)>>16;ya=Yb>>(Zb-1);za=Yb=(((Yb>>Zb)<<16)>>16);Aa=19;}break;default:throw"unsupported shift16="+Ja;}return Yb;}function nc(Ja,Yb,Zb){var kc,ac;switch(Ja){case 0:Zb&=0x1f;if(Zb){kc=Yb;Yb=(Yb<<Zb)|(Yb>>>(32-Zb));ya=lc();ya|=(Yb&0x0001)|(((kc^Yb)>>20)&0x0800);za=((ya>>6)&1)^1;Aa=24;}break;case 1:Zb&=0x1f;if(Zb){kc=Yb;Yb=(Yb>>>Zb)|(Yb<<(32-Zb));ya=lc();ya|=((Yb>>31)&0x0001)|(((kc^Yb)>>20)&0x0800);za=((ya>>6)&1)^1;Aa=24;}break;case 2:Zb&=0x1f;if(Zb){kc=Yb;ac=bc();Yb=(Yb<<Zb)|(ac<<(Zb-1));if(Zb>1)Yb|=kc>>>(33-Zb);ya=lc();ya|=(((kc^Yb)>>20)&0x0800)|((kc>>(32-Zb))&0x0001);za=((ya>>6)&1)^1;Aa=24;}break;case 3:Zb&=0x1f;if(Zb){kc=Yb;ac=bc();Yb=(Yb>>>Zb)|(ac<<(32-Zb));if(Zb>1)Yb|=kc<<(33-Zb);ya=lc();ya|=(((kc^Yb)>>20)&0x0800)|((kc>>(Zb-1))&0x0001);za=((ya>>6)&1)^1;Aa=24;}break;case 4:case 6:Zb&=0x1f;if(Zb){ya=Yb<<(Zb-1);za=Yb=Yb<<Zb;Aa=17;}break;case 5:Zb&=0x1f;if(Zb){ya=Yb>>>(Zb-1);za=Yb=Yb>>>Zb;Aa=20;}break;case 7:Zb&=0x1f;if(Zb){ya=Yb>>(Zb-1);za=Yb=Yb>>Zb;Aa=20;}break;default:throw"unsupported shift32="+Ja;}return Yb;}function oc(Ja,Yb,Zb,pc){var qc;pc&=0x1f;if(pc){if(Ja==0){Zb&=0xffff;qc=Zb|(Yb<<16);ya=qc>>(32-pc);qc<<=pc;if(pc>16)qc|=Zb<<(pc-16);Yb=za=qc>>16;Aa=19;}else{qc=(Yb&0xffff)|(Zb<<16);ya=qc>>(pc-1);qc>>=pc;if(pc>16)qc|=Zb<<(32-pc);Yb=za=(((qc)<<16)>>16);Aa=19;}}return Yb;}function rc(Yb,Zb,pc){pc&=0x1f;if(pc){ya=Yb<<(pc-1);za=Yb=(Yb<<pc)|(Zb>>>(32-pc));Aa=17;}return Yb;}function sc(Yb,Zb,pc){pc&=0x1f;if(pc){ya=Yb>>(pc-1);za=Yb=(Yb>>>pc)|(Zb<<(32-pc));Aa=20;}return Yb;}function tc(Yb,Zb){Zb&=0xf;ya=Yb>>Zb;Aa=19;}function uc(Yb,Zb){Zb&=0x1f;ya=Yb>>Zb;Aa=20;}function vc(Ja,Yb,Zb){var wc;Zb&=0xf;ya=Yb>>Zb;wc=1<<Zb;switch(Ja){case 1:Yb|=wc;break;case 2:Yb&=~wc;break;case 3:default:Yb^=wc;break;}Aa=19;return Yb;}function xc(Ja,Yb,Zb){var wc;Zb&=0x1f;ya=Yb>>Zb;wc=1<<Zb;switch(Ja){case 1:Yb|=wc;break;case 2:Yb&=~wc;break;case 3:default:Yb^=wc;break;}Aa=20;return Yb;}function yc(Yb,Zb){Zb&=0xffff;if(Zb){Yb=0;while((Zb&1)==0){Yb++;Zb>>=1;}za=1;}else{za=0;}Aa=14;return Yb;}function zc(Yb,Zb){if(Zb){Yb=0;while((Zb&1)==0){Yb++;Zb>>=1;}za=1;}else{za=0;}Aa=14;return Yb;}function Ac(Yb,Zb){Zb&=0xffff;if(Zb){Yb=15;while((Zb&0x8000)==0){Yb--;Zb<<=1;}za=1;}else{za=0;}Aa=14;return Yb;}function Bc(Yb,Zb){if(Zb){Yb=31;while(Zb>=0){Yb--;Zb<<=1;}za=1;}else{za=0;}Aa=14;return Yb;}function Cc(b){var a,q,r;a=xa[0]&0xffff;b&=0xff;if((a>>8)>=b)Dc(0);q=(a/b)>>0;r=(a%b);Wb(0,(q&0xff)|(r<<8));}function Ec(b){var a,q,r;a=(xa[0]<<16)>>16;b=(b<<24)>>24;if(b==0)Dc(0);q=(a/b)>>0;if(((q<<24)>>24)!=q)Dc(0);r=(a%b);Wb(0,(q&0xff)|(r<<8));}function Fc(b){var a,q,r;a=(xa[2]<<16)|(xa[0]&0xffff);b&=0xffff;if((a>>>16)>=b)Dc(0);q=(a/b)>>0;r=(a%b);Wb(0,q);Wb(2,r);}function Gc(b){var a,q,r;a=(xa[2]<<16)|(xa[0]&0xffff);b=(b<<16)>>16;if(b==0)Dc(0);q=(a/b)>>0;if(((q<<16)>>16)!=q)Dc(0);r=(a%b);Wb(0,q);Wb(2,r);}function Hc(Ic,Jc,b){var a,i,Kc;Ic=Ic>>>0;Jc=Jc>>>0;b=b>>>0;if(Ic>=b){Dc(0);}if(Ic>=0&&Ic<=0x200000){a=Ic*4294967296+Jc;Ma=(a%b)>>0;return(a/b)>>0;}else{for(i=0;i<32;i++){Kc=Ic>>31;Ic=((Ic<<1)|(Jc>>>31))>>>0;if(Kc||Ic>=b){Ic=Ic-b;Jc=(Jc<<1)|1;}else{Jc=Jc<<1;}}Ma=Ic>>0;return Jc;}}function Lc(Ic,Jc,b){var Mc,Nc,q;if(Ic<0){Mc=1;Ic=~Ic;Jc=(-Jc)>>0;if(Jc==0)Ic=(Ic+1)>>0;}else{Mc=0;}if(b<0){b=(-b)>>0;Nc=1;}else{Nc=0;}q=Hc(Ic,Jc,b);Nc^=Mc;if(Nc){if((q>>>0)>0x80000000)Dc(0);q=(-q)>>0;}else{if((q>>>0)>=0x80000000)Dc(0);}if(Mc){Ma=(-Ma)>>0;}return q;}function Oc(a,b){var qc;a&=0xff;b&=0xff;qc=(xa[0]&0xff)*(b&0xff);ya=qc>>8;za=(((qc)<<24)>>24);Aa=21;return qc;}function Pc(a,b){var qc;a=(((a)<<24)>>24);b=(((b)<<24)>>24);qc=(a*b)>>0;za=(((qc)<<24)>>24);ya=(qc!=za)>>0;Aa=21;return qc;}function Qc(a,b){var qc;qc=((a&0xffff)*(b&0xffff))>>0;ya=qc>>>16;za=(((qc)<<16)>>16);Aa=22;return qc;}function Rc(a,b){var qc;a=(a<<16)>>16;b=(b<<16)>>16;qc=(a*b)>>0;za=(((qc)<<16)>>16);ya=(qc!=za)>>0;Aa=22;return qc;}function Sc(a,b){var r,Jc,Ic,Tc,Uc,m;a=a>>>0;b=b>>>0;r=a*b;if(r<=0xffffffff){Ma=0;r&=-1;}else{Jc=a&0xffff;Ic=a>>>16;Tc=b&0xffff;Uc=b>>>16;r=Jc*Tc;Ma=Ic*Uc;m=Jc*Uc;r+=(((m&0xffff)<<16)>>>0);Ma+=(m>>>16);if(r>=4294967296){r-=4294967296;Ma++;}m=Ic*Tc;r+=(((m&0xffff)<<16)>>>0);Ma+=(m>>>16);if(r>=4294967296){r-=4294967296;Ma++;}r&=-1;Ma&=-1;}return r;}function Vc(a,b){za=Sc(a,b);ya=Ma;Aa=23;return za;}function Wc(a,b){var s,r;s=0;if(a<0){a=-a;s=1;}if(b<0){b=-b;s^=1;}r=Sc(a,b);if(s){Ma=~Ma;r=(-r)>>0;if(r==0){Ma=(Ma+1)>>0;}}za=r;ya=(Ma-(r>>31))>>0;Aa=23;return r;}function bc(){var Yb,qc,Xc,Yc;if(Aa>=25){Xc=Ba;Yc=Ca;}else{Xc=Aa;Yc=za;}switch(Xc){case 0:qc=(Yc&0xff)<(ya&0xff);break;case 1:qc=(Yc&0xffff)<(ya&0xffff);break;case 2:qc=(Yc>>>0)<(ya>>>0);break;case 3:qc=(Yc&0xff)<=(ya&0xff);break;case 4:qc=(Yc&0xffff)<=(ya&0xffff);break;case 5:qc=(Yc>>>0)<=(ya>>>0);break;case 6:qc=((Yc+ya)&0xff)<(ya&0xff);break;case 7:qc=((Yc+ya)&0xffff)<(ya&0xffff);break;case 8:qc=((Yc+ya)>>>0)<(ya>>>0);break;case 9:Yb=(Yc+ya+1)&0xff;qc=Yb<=(ya&0xff);break;case 10:Yb=(Yc+ya+1)&0xffff;qc=Yb<=(ya&0xffff);break;case 11:Yb=(Yc+ya+1)>>>0;qc=Yb<=(ya>>>0);break;case 12:case 13:case 14:qc=0;break;case 15:qc=(ya>>7)&1;break;case 16:qc=(ya>>15)&1;break;case 17:qc=(ya>>31)&1;break;case 18:case 19:case 20:qc=ya&1;break;case 21:case 22:case 23:qc=ya!=0;break;case 24:qc=ya&1;break;default:throw"GET_CARRY: unsupported cc_op="+Aa;}return qc;}function Zc(){var qc,Yb;switch(Aa){case 0:Yb=(za-ya)>>0;qc=(((Yb^ya^-1)&(Yb^za))>>7)&1;break;case 1:Yb=(za-ya)>>0;qc=(((Yb^ya^-1)&(Yb^za))>>15)&1;break;case 2:Yb=(za-ya)>>0;qc=(((Yb^ya^-1)&(Yb^za))>>31)&1;break;case 3:Yb=(za-ya-1)>>0;qc=(((Yb^ya^-1)&(Yb^za))>>7)&1;break;case 4:Yb=(za-ya-1)>>0;qc=(((Yb^ya^-1)&(Yb^za))>>15)&1;break;case 5:Yb=(za-ya-1)>>0;qc=(((Yb^ya^-1)&(Yb^za))>>31)&1;break;case 6:Yb=(za+ya)>>0;qc=(((Yb^ya)&(Yb^za))>>7)&1;break;case 7:Yb=(za+ya)>>0;qc=(((Yb^ya)&(Yb^za))>>15)&1;break;case 8:Yb=(za+ya)>>0;qc=(((Yb^ya)&(Yb^za))>>31)&1;break;case 9:Yb=(za+ya+1)>>0;qc=(((Yb^ya)&(Yb^za))>>7)&1;break;case 10:Yb=(za+ya+1)>>0;qc=(((Yb^ya)&(Yb^za))>>15)&1;break;case 11:Yb=(za+ya+1)>>0;qc=(((Yb^ya)&(Yb^za))>>31)&1;break;case 12:case 13:case 14:qc=0;break;case 15:case 18:qc=((ya^za)>>7)&1;break;case 16:case 19:qc=((ya^za)>>15)&1;break;case 17:case 20:qc=((ya^za)>>31)&1;break;case 21:case 22:case 23:qc=ya!=0;break;case 24:qc=(ya>>11)&1;break;case 25:qc=(za&0xff)==0x80;break;case 26:qc=(za&0xffff)==0x8000;break;case 27:qc=(za==-2147483648);break;case 28:qc=(za&0xff)==0x7f;break;case 29:qc=(za&0xffff)==0x7fff;break;case 30:qc=za==0x7fffffff;break;default:throw"JO: unsupported cc_op="+Aa;}return qc;}function ad(){var qc;switch(Aa){case 6:qc=((za+ya)&0xff)<=(ya&0xff);break;case 7:qc=((za+ya)&0xffff)<=(ya&0xffff);break;case 8:qc=((za+ya)>>>0)<=(ya>>>0);break;case 24:qc=(ya&(0x0040|0x0001))!=0;break;default:qc=bc()|(za==0);break;}return qc;}function bd(){if(Aa==24){return(ya>>2)&1;}else{return aa[za&0xff];}}function cd(){var qc;switch(Aa){case 6:qc=((za+ya)<<24)<(ya<<24);break;case 7:qc=((za+ya)<<16)<(ya<<16);break;case 8:qc=((za+ya)>>0)<ya;break;case 12:case 25:case 28:case 13:case 26:case 29:case 14:case 27:case 30:qc=za<0;break;case 24:qc=((ya>>7)^(ya>>11))&1;break;default:qc=(Aa==24?((ya>>7)&1):(za<0))^Zc();break;}return qc;}function dd(){var qc;switch(Aa){case 6:qc=((za+ya)<<24)<=(ya<<24);break;case 7:qc=((za+ya)<<16)<=(ya<<16);break;case 8:qc=((za+ya)>>0)<=ya;break;case 12:case 25:case 28:case 13:case 26:case 29:case 14:case 27:case 30:qc=za<=0;break;case 24:qc=(((ya>>7)^(ya>>11))|(ya>>6))&1;break;default:qc=((Aa==24?((ya>>7)&1):(za<0))^Zc())|(za==0);break;}return qc;}function ed(){var Yb,qc;switch(Aa){case 0:case 1:case 2:Yb=(za-ya)>>0;qc=(za^Yb^ya)&0x10;break;case 3:case 4:case 5:Yb=(za-ya-1)>>0;qc=(za^Yb^ya)&0x10;break;case 6:case 7:case 8:Yb=(za+ya)>>0;qc=(za^Yb^ya)&0x10;break;case 9:case 10:case 11:Yb=(za+ya+1)>>0;qc=(za^Yb^ya)&0x10;break;case 12:case 13:case 14:qc=0;break;case 15:case 18:case 16:case 19:case 17:case 20:case 21:case 22:case 23:qc=0;break;case 24:qc=ya&0x10;break;case 25:case 26:case 27:qc=(za^(za-1))&0x10;break;case 28:case 29:case 30:qc=(za^(za+1))&0x10;break;default:throw"AF: unsupported cc_op="+Aa;}return qc;}function fd(gd){var qc;switch(gd>>1){case 0:qc=Zc();break;case 1:qc=bc();break;case 2:qc=(za==0);break;case 3:qc=ad();break;case 4:qc=(Aa==24?((ya>>7)&1):(za<0));break;case 5:qc=bd();break;case 6:qc=cd();break;case 7:qc=dd();break;default:throw"unsupported cond: "+gd;}return qc^(gd&1);}function lc(){return(bd()<<2)|((za==0)<<6)|((Aa==24?((ya>>7)&1):(za<0))<<7)|ed();}function hd(){return(bc()<<0)|(bd()<<2)|((za==0)<<6)|((Aa==24?((ya>>7)&1):(za<0))<<7)|(Zc()<<11)|ed();}function id(){var jd;jd=hd();jd|=wa.df&0x00000400;jd|=wa.eflags;return jd;}function kd(jd,ld){ya=jd&(0x0800|0x0080|0x0040|0x0010|0x0004|0x0001);za=((ya>>6)&1)^1;Aa=24;wa.df=1-(2*((jd>>10)&1));wa.eflags=(wa.eflags&~ld)|(jd&ld);}function md(){return wa.cycle_count+(ua-Ka);}function nd(na){throw"CPU abort: "+na;}function od(){wa.eip=Jb;wa.cc_src=ya;wa.cc_dst=za;wa.cc_op=Aa;wa.cc_op2=Ba;wa.cc_dst2=Ca;wa.dump();}function pd(){wa.eip=Jb;wa.cc_src=ya;wa.cc_dst=za;wa.cc_op=Aa;wa.cc_op2=Ba;wa.cc_dst2=Ca;wa.dump_short();}function qd(intno,error_code){wa.cycle_count+=(ua-Ka);wa.eip=Jb;wa.cc_src=ya;wa.cc_dst=za;wa.cc_op=Aa;wa.cc_op2=Ba;wa.cc_dst2=Ca;throw{intno:intno,error_code:error_code};}function Dc(intno){qd(intno,0);}function rd(sd){wa.cpl=sd;if(wa.cpl==3){bb=Za;cb=ab;}else{bb=Xa;cb=Ya;}}function td(fa,ud){var eb;if(ud){eb=cb[fa>>>12];}else{eb=bb[fa>>>12];}if(eb==-1){fb(fa,ud,wa.cpl==3);if(ud){eb=cb[fa>>>12];}else{eb=bb[fa>>>12];}}return eb^fa;}function vd(ga){var wd;wd=xa[4]-2;fa=((wd&Pa)+Oa)>>0;ub(ga);xa[4]=(xa[4]&~Pa)|((wd)&Pa);}function xd(ga){var wd;wd=xa[4]-4;fa=((wd&Pa)+Oa)>>0;wb(ga);xa[4]=(xa[4]&~Pa)|((wd)&Pa);}function yd(){fa=((xa[4]&Pa)+Oa)>>0;return ib();}function zd(){xa[4]=(xa[4]&~Pa)|((xa[4]+2)&Pa);}function Ad(){fa=((xa[4]&Pa)+Oa)>>0;return kb();}function Bd(){xa[4]=(xa[4]&~Pa)|((xa[4]+4)&Pa);}function Cd(Nb,b){var n,Da,l,Ea,Dd,base,Ja,Ed;n=1;Da=Ra;if(Da&0x0100)Ed=2;else Ed=4;Fd:for(;;){switch(b){case 0x66:if(Ra&0x0100){Ed=4;Da&=~0x0100;}else{Ed=2;Da|=0x0100;}case 0xf0:case 0xf2:case 0xf3:case 0x26:case 0x2e:case 0x36:case 0x3e:case 0x64:case 0x65:{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;b=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};break;case 0x67:if(Ra&0x0080){Da&=~0x0080;}else{Da|=0x0080;}{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;b=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};break;case 0x91:case 0x92:case 0x93:case 0x94:case 0x95:case 0x96:case 0x97:case 0x40:case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46:case 0x47:case 0x48:case 0x49:case 0x4a:case 0x4b:case 0x4c:case 0x4d:case 0x4e:case 0x4f:case 0x50:case 0x51:case 0x52:case 0x53:case 0x54:case 0x55:case 0x56:case 0x57:case 0x58:case 0x59:case 0x5a:case 0x5b:case 0x5c:case 0x5d:case 0x5e:case 0x5f:case 0x98:case 0x99:case 0xc9:case 0x9c:case 0x9d:case 0x06:case 0x0e:case 0x16:case 0x1e:case 0x07:case 0x17:case 0x1f:case 0xc3:case 0xcb:case 0x90:case 0xcc:case 0xce:case 0xcf:case 0xf5:case 0xf8:case 0xf9:case 0xfc:case 0xfd:case 0xfa:case 0xfb:case 0x9e:case 0x9f:case 0xf4:case 0xa4:case 0xa5:case 0xaa:case 0xab:case 0xa6:case 0xa7:case 0xac:case 0xad:case 0xae:case 0xaf:case 0x9b:case 0xec:case 0xed:case 0xee:case 0xef:case 0xd7:case 0x27:case 0x2f:case 0x37:case 0x3f:case 0x60:case 0x61:case 0x6c:case 0x6d:case 0x6e:case 0x6f:break Fd;case 0xb0:case 0xb1:case 0xb2:case 0xb3:case 0xb4:case 0xb5:case 0xb6:case 0xb7:case 0x04:case 0x0c:case 0x14:case 0x1c:case 0x24:case 0x2c:case 0x34:case 0x3c:case 0xa8:case 0x6a:case 0xeb:case 0x70:case 0x71:case 0x72:case 0x73:case 0x76:case 0x77:case 0x78:case 0x79:case 0x7a:case 0x7b:case 0x7c:case 0x7d:case 0x7e:case 0x7f:case 0x74:case 0x75:case 0xe0:case 0xe1:case 0xe2:case 0xe3:case 0xcd:case 0xe4:case 0xe5:case 0xe6:case 0xe7:case 0xd4:case 0xd5:n++;if(n>15)Dc(6);break Fd;case 0xb8:case 0xb9:case 0xba:case 0xbb:case 0xbc:case 0xbd:case 0xbe:case 0xbf:case 0x05:case 0x0d:case 0x15:case 0x1d:case 0x25:case 0x2d:case 0x35:case 0x3d:case 0xa9:case 0x68:case 0xe9:case 0xe8:n+=Ed;if(n>15)Dc(6);break Fd;case 0x88:case 0x89:case 0x8a:case 0x8b:case 0x86:case 0x87:case 0x8e:case 0x8c:case 0xc4:case 0xc5:case 0x00:case 0x08:case 0x10:case 0x18:case 0x20:case 0x28:case 0x30:case 0x38:case 0x01:case 0x09:case 0x11:case 0x19:case 0x21:case 0x29:case 0x31:case 0x39:case 0x02:case 0x0a:case 0x12:case 0x1a:case 0x22:case 0x2a:case 0x32:case 0x3a:case 0x03:case 0x0b:case 0x13:case 0x1b:case 0x23:case 0x2b:case 0x33:case 0x3b:case 0x84:case 0x85:case 0xd0:case 0xd1:case 0xd2:case 0xd3:case 0x8f:case 0x8d:case 0xfe:case 0xff:case 0xd8:case 0xd9:case 0xda:case 0xdb:case 0xdc:case 0xdd:case 0xde:case 0xdf:case 0x62:case 0x63:{{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Ea=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if(Da&0x0080){switch(Ea>>6){case 0:if((Ea&7)==6)n+=2;break;case 1:n++;break;default:n+=2;break;}}else{switch((Ea&7)|((Ea>>3)&0x18)){case 0x04:{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Dd=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if((Dd&7)==5){n+=4;}break;case 0x0c:n+=2;break;case 0x14:n+=5;break;case 0x05:n+=4;break;case 0x00:case 0x01:case 0x02:case 0x03:case 0x06:case 0x07:break;case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0d:case 0x0e:case 0x0f:n++;break;case 0x10:case 0x11:case 0x12:case 0x13:case 0x15:case 0x16:case 0x17:n+=4;break;}}if(n>15)Dc(6);};break Fd;case 0xa0:case 0xa1:case 0xa2:case 0xa3:if(Da&0x0100)n+=2;else n+=4;if(n>15)Dc(6);break Fd;case 0xc6:case 0x80:case 0x82:case 0x83:case 0x6b:case 0xc0:case 0xc1:{{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Ea=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if(Da&0x0080){switch(Ea>>6){case 0:if((Ea&7)==6)n+=2;break;case 1:n++;break;default:n+=2;break;}}else{switch((Ea&7)|((Ea>>3)&0x18)){case 0x04:{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Dd=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if((Dd&7)==5){n+=4;}break;case 0x0c:n+=2;break;case 0x14:n+=5;break;case 0x05:n+=4;break;case 0x00:case 0x01:case 0x02:case 0x03:case 0x06:case 0x07:break;case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0d:case 0x0e:case 0x0f:n++;break;case 0x10:case 0x11:case 0x12:case 0x13:case 0x15:case 0x16:case 0x17:n+=4;break;}}if(n>15)Dc(6);};n++;if(n>15)Dc(6);break Fd;case 0xc7:case 0x81:case 0x69:{{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Ea=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if(Da&0x0080){switch(Ea>>6){case 0:if((Ea&7)==6)n+=2;break;case 1:n++;break;default:n+=2;break;}}else{switch((Ea&7)|((Ea>>3)&0x18)){case 0x04:{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Dd=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if((Dd&7)==5){n+=4;}break;case 0x0c:n+=2;break;case 0x14:n+=5;break;case 0x05:n+=4;break;case 0x00:case 0x01:case 0x02:case 0x03:case 0x06:case 0x07:break;case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0d:case 0x0e:case 0x0f:n++;break;case 0x10:case 0x11:case 0x12:case 0x13:case 0x15:case 0x16:case 0x17:n+=4;break;}}if(n>15)Dc(6);};n+=Ed;if(n>15)Dc(6);break Fd;case 0xf6:{{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Ea=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if(Da&0x0080){switch(Ea>>6){case 0:if((Ea&7)==6)n+=2;break;case 1:n++;break;default:n+=2;break;}}else{switch((Ea&7)|((Ea>>3)&0x18)){case 0x04:{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Dd=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if((Dd&7)==5){n+=4;}break;case 0x0c:n+=2;break;case 0x14:n+=5;break;case 0x05:n+=4;break;case 0x00:case 0x01:case 0x02:case 0x03:case 0x06:case 0x07:break;case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0d:case 0x0e:case 0x0f:n++;break;case 0x10:case 0x11:case 0x12:case 0x13:case 0x15:case 0x16:case 0x17:n+=4;break;}}if(n>15)Dc(6);};Ja=(Ea>>3)&7;if(Ja==0){n++;if(n>15)Dc(6);}break Fd;case 0xf7:{{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Ea=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if(Da&0x0080){switch(Ea>>6){case 0:if((Ea&7)==6)n+=2;break;case 1:n++;break;default:n+=2;break;}}else{switch((Ea&7)|((Ea>>3)&0x18)){case 0x04:{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Dd=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if((Dd&7)==5){n+=4;}break;case 0x0c:n+=2;break;case 0x14:n+=5;break;case 0x05:n+=4;break;case 0x00:case 0x01:case 0x02:case 0x03:case 0x06:case 0x07:break;case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0d:case 0x0e:case 0x0f:n++;break;case 0x10:case 0x11:case 0x12:case 0x13:case 0x15:case 0x16:case 0x17:n+=4;break;}}if(n>15)Dc(6);};Ja=(Ea>>3)&7;if(Ja==0){n+=Ed;if(n>15)Dc(6);}break Fd;case 0xea:case 0x9a:n+=2+Ed;if(n>15)Dc(6);break Fd;case 0xc2:case 0xca:n+=2;if(n>15)Dc(6);break Fd;case 0xc8:n+=3;if(n>15)Dc(6);break Fd;case 0xd6:case 0xf1:default:Dc(6);case 0x0f:{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;b=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};switch(b){case 0x06:case 0xa2:case 0x31:case 0xa0:case 0xa8:case 0xa1:case 0xa9:case 0xc8:case 0xc9:case 0xca:case 0xcb:case 0xcc:case 0xcd:case 0xce:case 0xcf:break Fd;case 0x80:case 0x81:case 0x82:case 0x83:case 0x84:case 0x85:case 0x86:case 0x87:case 0x88:case 0x89:case 0x8a:case 0x8b:case 0x8c:case 0x8d:case 0x8e:case 0x8f:n+=Ed;if(n>15)Dc(6);break Fd;case 0x90:case 0x91:case 0x92:case 0x93:case 0x94:case 0x95:case 0x96:case 0x97:case 0x98:case 0x99:case 0x9a:case 0x9b:case 0x9c:case 0x9d:case 0x9e:case 0x9f:case 0x40:case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46:case 0x47:case 0x48:case 0x49:case 0x4a:case 0x4b:case 0x4c:case 0x4d:case 0x4e:case 0x4f:case 0xb6:case 0xb7:case 0xbe:case 0xbf:case 0x00:case 0x01:case 0x02:case 0x03:case 0x20:case 0x22:case 0x23:case 0xb2:case 0xb4:case 0xb5:case 0xa5:case 0xad:case 0xa3:case 0xab:case 0xb3:case 0xbb:case 0xbc:case 0xbd:case 0xaf:case 0xc0:case 0xc1:case 0xb0:case 0xb1:{{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Ea=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if(Da&0x0080){switch(Ea>>6){case 0:if((Ea&7)==6)n+=2;break;case 1:n++;break;default:n+=2;break;}}else{switch((Ea&7)|((Ea>>3)&0x18)){case 0x04:{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Dd=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if((Dd&7)==5){n+=4;}break;case 0x0c:n+=2;break;case 0x14:n+=5;break;case 0x05:n+=4;break;case 0x00:case 0x01:case 0x02:case 0x03:case 0x06:case 0x07:break;case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0d:case 0x0e:case 0x0f:n++;break;case 0x10:case 0x11:case 0x12:case 0x13:case 0x15:case 0x16:case 0x17:n+=4;break;}}if(n>15)Dc(6);};break Fd;case 0xa4:case 0xac:case 0xba:{{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Ea=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if(Da&0x0080){switch(Ea>>6){case 0:if((Ea&7)==6)n+=2;break;case 1:n++;break;default:n+=2;break;}}else{switch((Ea&7)|((Ea>>3)&0x18)){case 0x04:{if((n+1)>15)Dc(6);fa=(Nb+(n++))>>0;Dd=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);};if((Dd&7)==5){n+=4;}break;case 0x0c:n+=2;break;case 0x14:n+=5;break;case 0x05:n+=4;break;case 0x00:case 0x01:case 0x02:case 0x03:case 0x06:case 0x07:break;case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0d:case 0x0e:case 0x0f:n++;break;case 0x10:case 0x11:case 0x12:case 0x13:case 0x15:case 0x16:case 0x17:n+=4;break;}}if(n>15)Dc(6);};n++;if(n>15)Dc(6);break Fd;case 0x04:case 0x05:case 0x07:case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0c:case 0x0d:case 0x0e:case 0x0f:case 0x10:case 0x11:case 0x12:case 0x13:case 0x14:case 0x15:case 0x16:case 0x17:case 0x18:case 0x19:case 0x1a:case 0x1b:case 0x1c:case 0x1d:case 0x1e:case 0x1f:case 0x21:case 0x24:case 0x25:case 0x26:case 0x27:case 0x28:case 0x29:case 0x2a:case 0x2b:case 0x2c:case 0x2d:case 0x2e:case 0x2f:case 0x30:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case 0x37:case 0x38:case 0x39:case 0x3a:case 0x3b:case 0x3c:case 0x3d:case 0x3e:case 0x3f:case 0x50:case 0x51:case 0x52:case 0x53:case 0x54:case 0x55:case 0x56:case 0x57:case 0x58:case 0x59:case 0x5a:case 0x5b:case 0x5c:case 0x5d:case 0x5e:case 0x5f:case 0x60:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66:case 0x67:case 0x68:case 0x69:case 0x6a:case 0x6b:case 0x6c:case 0x6d:case 0x6e:case 0x6f:case 0x70:case 0x71:case 0x72:case 0x73:case 0x74:case 0x75:case 0x76:case 0x77:case 0x78:case 0x79:case 0x7a:case 0x7b:case 0x7c:case 0x7d:case 0x7e:case 0x7f:case 0xa6:case 0xa7:case 0xaa:case 0xae:case 0xb8:case 0xb9:case 0xc2:case 0xc3:case 0xc4:case 0xc5:case 0xc6:case 0xc7:default:Dc(6);}break;}}return n;}function fb(Gd,Hd,ja){var Id,Jd,error_code,Kd,Ld,Md,Nd,ud,Od;if(!(wa.cr0&(1<<31))){wa.tlb_set_page(Gd&-4096,Gd&-4096,1);}else{Id=(wa.cr3&-4096)+((Gd>>20)&0xffc);Jd=wa.ld32_phys(Id);if(!(Jd&0x00000001)){error_code=0;}else{if(!(Jd&0x00000020)){Jd|=0x00000020;wa.st32_phys(Id,Jd);}Kd=(Jd&-4096)+((Gd>>10)&0xffc);Ld=wa.ld32_phys(Kd);if(!(Ld&0x00000001)){error_code=0;}else{Md=Ld&Jd;if(ja&&!(Md&0x00000004)){error_code=0x01;}else if(Hd&&!(Md&0x00000002)){error_code=0x01;}else{Nd=(Hd&&!(Ld&0x00000040));if(!(Ld&0x00000020)||Nd){Ld|=0x00000020;if(Nd)Ld|=0x00000040;wa.st32_phys(Kd,Ld);}ud=0;if((Ld&0x00000040)&&(Md&0x00000002))ud=1;Od=0;if(Md&0x00000004)Od=1;wa.tlb_set_page(Gd&-4096,Ld&-4096,ud,Od);return;}}}error_code|=Hd<<1;if(ja)error_code|=0x04;wa.cr2=Gd;qd(14,error_code);}}function Pd(Qd){if(!(Qd&(1<<0)))nd("real mode not supported");if((Qd&((1<<31)|(1<<16)|(1<<0)))!=(wa.cr0&((1<<31)|(1<<16)|(1<<0)))){wa.tlb_flush_all();}wa.cr0=Qd|(1<<4);}function Rd(Sd){wa.cr3=Sd;if(wa.cr0&(1<<31)){wa.tlb_flush_all();}}function Td(Ud){wa.cr4=Ud;}function Vd(Wd){if(Wd&(1<<22))return-1;else return 0xffff;}function Xd(selector){var sa,Rb,Yd,Wd;if(selector&0x4)sa=wa.ldt;else sa=wa.gdt;Rb=selector&~7;if((Rb+7)>sa.limit)return null;fa=sa.base+Rb;Yd=Cb();fa+=4;Wd=Cb();return[Yd,Wd];}function Zd(Yd,Wd){var limit;limit=(Yd&0xffff)|(Wd&0x000f0000);if(Wd&(1<<23))limit=(limit<<12)|0xfff;return limit;}function ae(Yd,Wd){return(((Yd>>>16)|((Wd&0xff)<<16)|(Wd&0xff000000)))&-1;}function be(sa,Yd,Wd){sa.base=ae(Yd,Wd);sa.limit=Zd(Yd,Wd);sa.flags=Wd;}function ce(){Na=wa.segs[1].base;Oa=wa.segs[2].base;if(wa.segs[2].flags&(1<<22))Pa=-1;else Pa=0xffff;Qa=(((Na|Oa|wa.segs[3].base|wa.segs[0].base)==0)&&Pa==-1);if(wa.segs[1].flags&(1<<22))Ra=0;else Ra=0x0100|0x0080;}function de(ee,selector,base,limit,flags){wa.segs[ee]={selector:selector,base:base,limit:limit,flags:flags};ce();}function fe(Sb,selector){de(Sb,selector,(selector<<4),0xffff,(1<<15)|(3<<13)|(1<<12)|(1<<8)|(1<<12)|(1<<9));}function ge(he){var ie,Rb,je,ke,le;if(!(wa.tr.flags&(1<<15)))nd("invalid tss");ie=(wa.tr.flags>>8)&0xf;if((ie&7)!=1)nd("invalid tss type");je=ie>>3;Rb=(he*4+2)<<je;if(Rb+(4<<je)-1>wa.tr.limit)qd(10,wa.tr.selector&0xfffc);fa=(wa.tr.base+Rb)&-1;if(je==0){le=Ab();fa+=2;}else{le=Cb();fa+=4;}ke=Ab();return[ke,le];}function me(intno,ne,error_code,oe,pe){var sa,qe,ie,he,selector,re,se;var te,ue,je;var e,Yd,Wd,ve,ke,le,we,xe;var ye,Pa;te=0;if(!ne&&!pe){switch(intno){case 8:case 10:case 11:case 12:case 13:case 14:case 17:te=1;break;}}if(ne)ye=oe;else ye=Jb;sa=wa.idt;if(intno*8+7>sa.limit)qd(13,intno*8+2);fa=(sa.base+intno*8)&-1;Yd=Cb();fa+=4;Wd=Cb();ie=(Wd>>8)&0x1f;switch(ie){case 5:case 7:case 6:throw"unsupported task gate";case 14:case 15:break;default:qd(13,intno*8+2);break;}he=(Wd>>13)&3;se=wa.cpl;if(ne&&he<se)qd(13,intno*8+2);if(!(Wd&(1<<15)))qd(11,intno*8+2);selector=Yd>>16;ve=(Wd&-65536)|(Yd&0x0000ffff);if((selector&0xfffc)==0)qd(13,0);e=Xd(selector);if(!e)qd(13,selector&0xfffc);Yd=e[0];Wd=e[1];if(!(Wd&(1<<12))||!(Wd&((1<<11))))qd(13,selector&0xfffc);he=(Wd>>13)&3;if(he>se)qd(13,selector&0xfffc);if(!(Wd&(1<<15)))qd(11,selector&0xfffc);if(!(Wd&(1<<10))&&he<se){e=ge(he);ke=e[0];le=e[1];if((ke&0xfffc)==0)qd(10,ke&0xfffc);if((ke&3)!=he)qd(10,ke&0xfffc);e=Xd(ke);if(!e)qd(10,ke&0xfffc);we=e[0];xe=e[1];re=(xe>>13)&3;if(re!=he)qd(10,ke&0xfffc);if(!(xe&(1<<12))||(xe&(1<<11))||!(xe&(1<<9)))qd(10,ke&0xfffc);if(!(xe&(1<<15)))qd(10,ke&0xfffc);ue=1;Pa=Vd(xe);qe=ae(we,xe);}else if((Wd&(1<<10))||he==se){if(wa.eflags&0x00020000)qd(13,selector&0xfffc);ue=0;Pa=Vd(wa.segs[2].flags);qe=wa.segs[2].base;le=xa[4];he=se;}else{qd(13,selector&0xfffc);ue=0;Pa=0;qe=0;le=0;}je=ie>>3;if(je==1){if(ue){if(wa.eflags&0x00020000){{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(wa.segs[5].selector);};{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(wa.segs[4].selector);};{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(wa.segs[3].selector);};{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(wa.segs[0].selector);};}{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(wa.segs[2].selector);};{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(xa[4]);};}{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(id());};{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(wa.segs[1].selector);};{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(ye);};if(te){{le=(le-4)&-1;fa=(qe+(le&Pa))&-1;Ib(error_code);};}}else{if(ue){if(wa.eflags&0x00020000){{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(wa.segs[5].selector);};{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(wa.segs[4].selector);};{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(wa.segs[3].selector);};{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(wa.segs[0].selector);};}{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(wa.segs[2].selector);};{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(xa[4]);};}{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(id());};{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(wa.segs[1].selector);};{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(ye);};if(te){{le=(le-2)&-1;fa=(qe+(le&Pa))&-1;Gb(error_code);};}}if(ue){if(wa.eflags&0x00020000){de(0,0,0,0,0);de(3,0,0,0,0);de(4,0,0,0,0);de(5,0,0,0,0);}ke=(ke&~3)|he;de(2,ke,qe,Zd(we,xe),xe);}xa[4]=(xa[4]&~Pa)|((le)&Pa);selector=(selector&~3)|he;de(1,selector,ae(Yd,Wd),Zd(Yd,Wd),Wd);rd(he);Jb=ve,Kb=Mb=0;if((ie&1)==0){wa.eflags&=~0x00000200;}wa.eflags&=~(0x00000100|0x00020000|0x00010000|0x00004000);}function ze(intno,ne,error_code,oe,pe){var sa,qe,selector,ve,le,ye;sa=wa.idt;if(intno*4+3>sa.limit)qd(13,intno*8+2);fa=(sa.base+(intno<<2))>>0;ve=Ab();fa=(fa+2)>>0;selector=Ab();le=xa[4];if(ne)ye=oe;else ye=Jb;{le=(le-2)>>0;fa=((le&Pa)+Oa)>>0;ub(id());};{le=(le-2)>>0;fa=((le&Pa)+Oa)>>0;ub(wa.segs[1].selector);};{le=(le-2)>>0;fa=((le&Pa)+Oa)>>0;ub(ye);};xa[4]=(xa[4]&~Pa)|((le)&Pa);Jb=ve,Kb=Mb=0;wa.segs[1].selector=selector;wa.segs[1].base=(selector<<4);wa.eflags&=~(0x00000200|0x00000100|0x00040000|0x00010000);}function Ae(intno,ne,error_code,oe,pe){if(intno==0x06){var Be=Jb;var Nb;na="do_interrupt: intno="+qa(intno)+" error_code="+pa(error_code)+" EIP="+pa(Be)+" ESP="+pa(xa[4])+" EAX="+pa(xa[0])+" EBX="+pa(xa[3])+" ECX="+pa(xa[1]);if(intno==0x0e){na+=" CR2="+pa(wa.cr2);}console.log(na);if(intno==0x06){var na,i,n;na="Code:";Nb=(Be+Na)>>0;n=4096-(Nb&0xfff);if(n>15)n=15;for(i=0;i<n;i++){fa=(Nb+i)&-1;na+=" "+qa(gb());}console.log(na);}}if(wa.cr0&(1<<0)){me(intno,ne,error_code,oe,pe);}else{ze(intno,ne,error_code,oe,pe);}}function Ce(selector){var sa,Yd,Wd,Rb,De;selector&=0xffff;if((selector&0xfffc)==0){wa.ldt.base=0;wa.ldt.limit=0;}else{if(selector&0x4)qd(13,selector&0xfffc);sa=wa.gdt;Rb=selector&~7;De=7;if((Rb+De)>sa.limit)qd(13,selector&0xfffc);fa=(sa.base+Rb)&-1;Yd=Cb();fa+=4;Wd=Cb();if((Wd&(1<<12))||((Wd>>8)&0xf)!=2)qd(13,selector&0xfffc);if(!(Wd&(1<<15)))qd(11,selector&0xfffc);be(wa.ldt,Yd,Wd);}wa.ldt.selector=selector;}function Ee(selector){var sa,Yd,Wd,Rb,ie,De;selector&=0xffff;if((selector&0xfffc)==0){wa.tr.base=0;wa.tr.limit=0;wa.tr.flags=0;}else{if(selector&0x4)qd(13,selector&0xfffc);sa=wa.gdt;Rb=selector&~7;De=7;if((Rb+De)>sa.limit)qd(13,selector&0xfffc);fa=(sa.base+Rb)&-1;Yd=Cb();fa+=4;Wd=Cb();ie=(Wd>>8)&0xf;if((Wd&(1<<12))||(ie!=1&&ie!=9))qd(13,selector&0xfffc);if(!(Wd&(1<<15)))qd(11,selector&0xfffc);be(wa.tr,Yd,Wd);Wd|=(1<<9);Ib(Wd);}wa.tr.selector=selector;}function Fe(Ge,selector){var Yd,Wd,se,he,He,sa,Rb;se=wa.cpl;if((selector&0xfffc)==0){if(Ge==2)qd(13,0);de(Ge,selector,0,0,0);}else{if(selector&0x4)sa=wa.ldt;else sa=wa.gdt;Rb=selector&~7;if((Rb+7)>sa.limit)qd(13,selector&0xfffc);fa=(sa.base+Rb)&-1;Yd=Cb();fa+=4;Wd=Cb();if(!(Wd&(1<<12)))qd(13,selector&0xfffc);He=selector&3;he=(Wd>>13)&3;if(Ge==2){if((Wd&(1<<11))||!(Wd&(1<<9)))qd(13,selector&0xfffc);if(He!=se||he!=se)qd(13,selector&0xfffc);}else{if((Wd&((1<<11)|(1<<9)))==(1<<11))qd(13,selector&0xfffc);if(!(Wd&(1<<11))||!(Wd&(1<<10))){if(he<se||he<He)qd(13,selector&0xfffc);}}if(!(Wd&(1<<15))){if(Ge==2)qd(12,selector&0xfffc);else qd(11,selector&0xfffc);}if(!(Wd&(1<<8))){Wd|=(1<<8);Ib(Wd);}de(Ge,selector,ae(Yd,Wd),Zd(Yd,Wd),Wd);}}function Ie(Ge,selector){var sa;selector&=0xffff;if(!(wa.cr0&(1<<0))){sa=wa.segs[Ge];sa.selector=selector;sa.base=selector<<4;}else if(wa.eflags&0x00020000){fe(Ge,selector);}else{Fe(Ge,selector);}}function Je(Ke,Le){Jb=Le,Kb=Mb=0;wa.segs[1].selector=Ke;wa.segs[1].base=(Ke<<4);ce();}function Me(Ke,Le){var Ne,ie,Yd,Wd,se,he,He,limit,e;if((Ke&0xfffc)==0)qd(13,0);e=Xd(Ke);if(!e)qd(13,Ke&0xfffc);Yd=e[0];Wd=e[1];se=wa.cpl;if(Wd&(1<<12)){if(!(Wd&(1<<11)))qd(13,Ke&0xfffc);he=(Wd>>13)&3;if(Wd&(1<<10)){if(he>se)qd(13,Ke&0xfffc);}else{He=Ke&3;if(He>se)qd(13,Ke&0xfffc);if(he!=se)qd(13,Ke&0xfffc);}if(!(Wd&(1<<15)))qd(11,Ke&0xfffc);limit=Zd(Yd,Wd);if((Le>>>0)>(limit>>>0))qd(13,Ke&0xfffc);de(1,(Ke&0xfffc)|se,ae(Yd,Wd),limit,Wd);Jb=Le,Kb=Mb=0;}else{nd("unsupported jump to call or task gate");}}function Oe(Ke,Le){if(!(wa.cr0&(1<<0))||(wa.eflags&0x00020000)){Je(Ke,Le);}else{Me(Ke,Le);}}function Pe(Ge,se){var he,Wd;if((Ge==4||Ge==5)&&(wa.segs[Ge].selector&0xfffc)==0)return;Wd=wa.segs[Ge].flags;he=(Wd>>13)&3;if(!(Wd&(1<<11))||!(Wd&(1<<10))){if(he<se){de(Ge,0,0,0,0);}}}function Qe(je,Ke,Le,oe){var le;le=xa[4];if(je){{le=(le-4)>>0;fa=((le&Pa)+Oa)>>0;wb(wa.segs[1].selector);};{le=(le-4)>>0;fa=((le&Pa)+Oa)>>0;wb(oe);};}else{{le=(le-2)>>0;fa=((le&Pa)+Oa)>>0;ub(wa.segs[1].selector);};{le=(le-2)>>0;fa=((le&Pa)+Oa)>>0;ub(oe);};}xa[4]=(xa[4]&~Pa)|((le)&Pa);Jb=Le,Kb=Mb=0;wa.segs[1].selector=Ke;wa.segs[1].base=(Ke<<4);ce();}function Re(je,Ke,Le,oe){var ue,i,e;var Yd,Wd,se,he,He,selector,ve,Se;var ke,we,xe,Te,ie,re,Pa;var ga,limit,Ue;var qe,Ve,We;if((Ke&0xfffc)==0)qd(13,0);e=Xd(Ke);if(!e)qd(13,Ke&0xfffc);Yd=e[0];Wd=e[1];se=wa.cpl;We=xa[4];if(Wd&(1<<12)){if(!(Wd&(1<<11)))qd(13,Ke&0xfffc);he=(Wd>>13)&3;if(Wd&(1<<10)){if(he>se)qd(13,Ke&0xfffc);}else{He=Ke&3;if(He>se)qd(13,Ke&0xfffc);if(he!=se)qd(13,Ke&0xfffc);}if(!(Wd&(1<<15)))qd(11,Ke&0xfffc);{Te=We;Pa=Vd(wa.segs[2].flags);qe=wa.segs[2].base;if(je){{Te=(Te-4)&-1;fa=(qe+(Te&Pa))&-1;Ib(wa.segs[1].selector);};{Te=(Te-4)&-1;fa=(qe+(Te&Pa))&-1;Ib(oe);};}else{{Te=(Te-2)&-1;fa=(qe+(Te&Pa))&-1;Gb(wa.segs[1].selector);};{Te=(Te-2)&-1;fa=(qe+(Te&Pa))&-1;Gb(oe);};}limit=Zd(Yd,Wd);if(Le>limit)qd(13,Ke&0xfffc);xa[4]=(xa[4]&~Pa)|((Te)&Pa);de(1,(Ke&0xfffc)|se,ae(Yd,Wd),limit,Wd);Jb=Le,Kb=Mb=0;}}else{ie=(Wd>>8)&0x1f;he=(Wd>>13)&3;He=Ke&3;switch(ie){case 1:case 9:case 5:throw"unsupported task gate";return;case 4:case 12:break;default:qd(13,Ke&0xfffc);break;}je=ie>>3;if(he<se||he<He)qd(13,Ke&0xfffc);if(!(Wd&(1<<15)))qd(11,Ke&0xfffc);selector=Yd>>16;ve=(Wd&0xffff0000)|(Yd&0x0000ffff);Se=Wd&0x1f;if((selector&0xfffc)==0)qd(13,0);e=Xd(selector);if(!e)qd(13,selector&0xfffc);Yd=e[0];Wd=e[1];if(!(Wd&(1<<12))||!(Wd&((1<<11))))qd(13,selector&0xfffc);he=(Wd>>13)&3;if(he>se)qd(13,selector&0xfffc);if(!(Wd&(1<<15)))qd(11,selector&0xfffc);if(!(Wd&(1<<10))&&he<se){e=ge(he);ke=e[0];Te=e[1];if((ke&0xfffc)==0)qd(10,ke&0xfffc);if((ke&3)!=he)qd(10,ke&0xfffc);e=Xd(ke);if(!e)qd(10,ke&0xfffc);we=e[0];xe=e[1];re=(xe>>13)&3;if(re!=he)qd(10,ke&0xfffc);if(!(xe&(1<<12))||(xe&(1<<11))||!(xe&(1<<9)))qd(10,ke&0xfffc);if(!(xe&(1<<15)))qd(10,ke&0xfffc);Ue=Vd(wa.segs[2].flags);Ve=wa.segs[2].base;Pa=Vd(xe);qe=ae(we,xe);if(je){{Te=(Te-4)&-1;fa=(qe+(Te&Pa))&-1;Ib(wa.segs[2].selector);};{Te=(Te-4)&-1;fa=(qe+(Te&Pa))&-1;Ib(We);};for(i=Se-1;i>=0;i--){ga=Xe(Ve+((We+i*4)&Ue));{Te=(Te-4)&-1;fa=(qe+(Te&Pa))&-1;Ib(ga);};}}else{{Te=(Te-2)&-1;fa=(qe+(Te&Pa))&-1;Gb(wa.segs[2].selector);};{Te=(Te-2)&-1;fa=(qe+(Te&Pa))&-1;Gb(We);};for(i=Se-1;i>=0;i--){ga=Ye(Ve+((We+i*2)&Ue));{Te=(Te-2)&-1;fa=(qe+(Te&Pa))&-1;Gb(ga);};}}ue=1;}else{Te=We;Pa=Vd(wa.segs[2].flags);qe=wa.segs[2].base;ue=0;}if(je){{Te=(Te-4)&-1;fa=(qe+(Te&Pa))&-1;Ib(wa.segs[1].selector);};{Te=(Te-4)&-1;fa=(qe+(Te&Pa))&-1;Ib(oe);};}else{{Te=(Te-2)&-1;fa=(qe+(Te&Pa))&-1;Gb(wa.segs[1].selector);};{Te=(Te-2)&-1;fa=(qe+(Te&Pa))&-1;Gb(oe);};}if(ue){ke=(ke&~3)|he;de(2,ke,qe,Zd(we,xe),xe);}selector=(selector&~3)|he;de(1,selector,ae(Yd,Wd),Zd(Yd,Wd),Wd);rd(he);xa[4]=(xa[4]&~Pa)|((Te)&Pa);Jb=ve,Kb=Mb=0;}}function Ze(je,Ke,Le,oe){if(!(wa.cr0&(1<<0))||(wa.eflags&0x00020000)){Qe(je,Ke,Le,oe);}else{Re(je,Ke,Le,oe);}}function af(je,bf,cf){var Te,Ke,Le,df,Pa,qe,ef;Pa=0xffff;Te=xa[4];qe=wa.segs[2].base;if(je==1){{fa=(qe+(Te&Pa))&-1;Le=Cb();Te=(Te+4)&-1;};{fa=(qe+(Te&Pa))&-1;Ke=Cb();Te=(Te+4)&-1;};Ke&=0xffff;if(bf){fa=(qe+(Te&Pa))&-1;df=Cb();Te=(Te+4)&-1;};}else{{fa=(qe+(Te&Pa))&-1;Le=Ab();Te=(Te+2)&-1;};{fa=(qe+(Te&Pa))&-1;Ke=Ab();Te=(Te+2)&-1;};if(bf){fa=(qe+(Te&Pa))&-1;df=Ab();Te=(Te+2)&-1;};}xa[4]=(xa[4]&~Pa)|((Te+cf)&Pa);wa.segs[1].selector=Ke;wa.segs[1].base=(Ke<<4);Jb=Le,Kb=Mb=0;if(bf){if(wa.eflags&0x00020000)ef=0x00000100|0x00040000|0x00200000|0x00000200|0x00010000|0x00004000;else ef=0x00000100|0x00040000|0x00200000|0x00000200|0x00003000|0x00010000|0x00004000;if(je==0)ef&=0xffff;kd(df,ef);}ce();}function ff(je,bf,cf){var Ke,df,gf;var hf,jf,kf,lf;var e,Yd,Wd,we,xe;var se,he,He,ef,Sa;var qe,Te,Le,wd,Pa;Pa=Vd(wa.segs[2].flags);Te=xa[4];qe=wa.segs[2].base;df=0;if(je==1){{fa=(qe+(Te&Pa))&-1;Le=Cb();Te=(Te+4)&-1;};{fa=(qe+(Te&Pa))&-1;Ke=Cb();Te=(Te+4)&-1;};Ke&=0xffff;if(bf){{fa=(qe+(Te&Pa))&-1;df=Cb();Te=(Te+4)&-1;};if(df&0x00020000){{fa=(qe+(Te&Pa))&-1;wd=Cb();Te=(Te+4)&-1;};{fa=(qe+(Te&Pa))&-1;gf=Cb();Te=(Te+4)&-1;};{fa=(qe+(Te&Pa))&-1;hf=Cb();Te=(Te+4)&-1;};{fa=(qe+(Te&Pa))&-1;jf=Cb();Te=(Te+4)&-1;};{fa=(qe+(Te&Pa))&-1;kf=Cb();Te=(Te+4)&-1;};{fa=(qe+(Te&Pa))&-1;lf=Cb();Te=(Te+4)&-1;};kd(df,0x00000100|0x00040000|0x00200000|0x00000200|0x00003000|0x00020000|0x00004000|0x00080000|0x00100000);fe(1,Ke&0xffff);rd(3);fe(2,gf&0xffff);fe(0,hf&0xffff);fe(3,jf&0xffff);fe(4,kf&0xffff);fe(5,lf&0xffff);Jb=Le&0xffff,Kb=Mb=0;xa[4]=(xa[4]&~Pa)|((wd)&Pa);return;}}}else{{fa=(qe+(Te&Pa))&-1;Le=Ab();Te=(Te+2)&-1;};{fa=(qe+(Te&Pa))&-1;Ke=Ab();Te=(Te+2)&-1;};if(bf){fa=(qe+(Te&Pa))&-1;df=Ab();Te=(Te+2)&-1;};}if((Ke&0xfffc)==0)qd(13,Ke&0xfffc);e=Xd(Ke);if(!e)qd(13,Ke&0xfffc);Yd=e[0];Wd=e[1];if(!(Wd&(1<<12))||!(Wd&(1<<11)))qd(13,Ke&0xfffc);se=wa.cpl;He=Ke&3;if(He<se)qd(13,Ke&0xfffc);he=(Wd>>13)&3;if(Wd&(1<<10)){if(he>He)qd(13,Ke&0xfffc);}else{if(he!=He)qd(13,Ke&0xfffc);}if(!(Wd&(1<<15)))qd(11,Ke&0xfffc);Te=(Te+cf)&-1;if(He==se){de(1,Ke,ae(Yd,Wd),Zd(Yd,Wd),Wd);}else{if(je==1){{fa=(qe+(Te&Pa))&-1;wd=Cb();Te=(Te+4)&-1;};{fa=(qe+(Te&Pa))&-1;gf=Cb();Te=(Te+4)&-1;};gf&=0xffff;}else{{fa=(qe+(Te&Pa))&-1;wd=Ab();Te=(Te+2)&-1;};{fa=(qe+(Te&Pa))&-1;gf=Ab();Te=(Te+2)&-1;};}if((gf&0xfffc)==0){qd(13,0);}else{if((gf&3)!=He)qd(13,gf&0xfffc);e=Xd(gf);if(!e)qd(13,gf&0xfffc);we=e[0];xe=e[1];if(!(xe&(1<<12))||(xe&(1<<11))||!(xe&(1<<9)))qd(13,gf&0xfffc);he=(xe>>13)&3;if(he!=He)qd(13,gf&0xfffc);if(!(xe&(1<<15)))qd(11,gf&0xfffc);de(2,gf,ae(we,xe),Zd(we,xe),xe);}de(1,Ke,ae(Yd,Wd),Zd(Yd,Wd),Wd);rd(He);Te=wd;Pa=Vd(xe);Pe(0,He);Pe(3,He);Pe(4,He);Pe(5,He);Te=(Te+cf)&-1;}xa[4]=(xa[4]&~Pa)|((Te)&Pa);Jb=Le,Kb=Mb=0;if(bf){ef=0x00000100|0x00040000|0x00200000|0x00010000|0x00004000;if(se==0)ef|=0x00003000;Sa=(wa.eflags>>12)&3;if(se<=Sa)ef|=0x00000200;if(je==0)ef&=0xffff;kd(df,ef);}}function mf(je){var Sa;if(!(wa.cr0&(1<<0))||(wa.eflags&0x00020000)){if(wa.eflags&0x00020000){Sa=(wa.eflags>>12)&3;if(Sa!=3)Dc(13);}af(je,1,0);}else{if(wa.eflags&0x00004000){throw"unsupported task gate";}else{ff(je,1,0);}}}function nf(je,cf){if(!(wa.cr0&(1<<0))||(wa.eflags&0x00020000)){af(je,0,cf);}else{ff(je,0,cf);}}function of(selector,pf){var e,Yd,Wd,He,he,se,ie;if((selector&0xfffc)==0)return null;e=Xd(selector);if(!e)return null;Yd=e[0];Wd=e[1];He=selector&3;he=(Wd>>13)&3;se=wa.cpl;if(Wd&(1<<12)){if((Wd&(1<<11))&&(Wd&(1<<10))){}else{if(he<se||he<He)return null;}}else{ie=(Wd>>8)&0xf;switch(ie){case 1:case 2:case 3:case 9:case 11:break;case 4:case 5:case 12:if(pf)return null;break;default:return null;}if(he<se||he<He)return null;}if(pf){return Zd(Yd,Wd);}else{return Wd&0x00f0ff00;}}function qf(je,pf){var ga,Ea,Ga,selector;if(!(wa.cr0&(1<<0))||(wa.eflags&0x00020000))Dc(6);Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){selector=xa[Ea&7]&0xffff;}else{fa=Pb(Ea);selector=ib();}ga=of(selector,pf);ya=hd();if(ga===null){ya&=~0x0040;}else{ya|=0x0040;if(je)xa[Ga]=ga;else Wb(Ga,ga);}za=((ya>>6)&1)^1;Aa=24;}function rf(selector,ud){var e,Yd,Wd,He,he,se;if((selector&0xfffc)==0)return 0;e=Xd(selector);if(!e)return 0;Yd=e[0];Wd=e[1];if(!(Wd&(1<<12)))return 0;He=selector&3;he=(Wd>>13)&3;se=wa.cpl;if(Wd&(1<<11)){if(ud){return 0;}else{if(!(Wd&(1<<9)))return 1;if(!(Wd&(1<<10))){if(he<se||he<He)return 0;}}}else{if(he<se||he<He)return 0;if(ud&&!(Wd&(1<<9)))return 0;}return 1;}function sf(selector,ud){var z;z=rf(selector,ud);ya=hd();if(z)ya|=0x0040;else ya&=~0x0040;za=((ya>>6)&1)^1;Aa=24;}function tf(){var Ea,ga,Ha,Fa;if(!(wa.cr0&(1<<0))||(wa.eflags&0x00020000))Dc(6);Ea=Ta[Kb++];;if((Ea>>6)==3){Fa=Ea&7;ga=xa[Fa]&0xffff;}else{fa=Pb(Ea);ga=ob();}Ha=xa[(Ea>>3)&7];ya=hd();if((ga&3)<(Ha&3)){ga=(ga&~3)|(Ha&3);if((Ea>>6)==3){Wb(Fa,ga);}else{ub(ga);}ya|=0x0040;}else{ya&=~0x0040;}za=((ya>>6)&1)^1;Aa=24;}function uf(){var Rb;Rb=xa[0];switch(Rb){case 0:xa[0]=1;xa[3]=0x756e6547&-1;xa[2]=0x49656e69&-1;xa[1]=0x6c65746e&-1;break;case 1:default:xa[0]=(5<<8)|(4<<4)|3;xa[3]=8<<8;xa[1]=0;xa[2]=(1<<4);break;}}function vf(base){var wf,xf;if(base==0)Dc(0);wf=xa[0]&0xff;xf=(wf/base)&-1;wf=(wf%base);xa[0]=(xa[0]&~0xffff)|wf|(xf<<8);za=(((wf)<<24)>>24);Aa=12;}function yf(base){var wf,xf;wf=xa[0]&0xff;xf=(xa[0]>>8)&0xff;wf=(xf*base+wf)&0xff;xa[0]=(xa[0]&~0xffff)|wf;za=(((wf)<<24)>>24);Aa=12;}function zf(){var Af,wf,xf,Bf,jd;jd=hd();Bf=jd&0x0010;wf=xa[0]&0xff;xf=(xa[0]>>8)&0xff;Af=(wf>0xf9);if(((wf&0x0f)>9)||Bf){wf=(wf+6)&0x0f;xf=(xf+1+Af)&0xff;jd|=0x0001|0x0010;}else{jd&=~(0x0001|0x0010);wf&=0x0f;}xa[0]=(xa[0]&~0xffff)|wf|(xf<<8);ya=jd;za=((ya>>6)&1)^1;Aa=24;}function Cf(){var Af,wf,xf,Bf,jd;jd=hd();Bf=jd&0x0010;wf=xa[0]&0xff;xf=(xa[0]>>8)&0xff;Af=(wf<6);if(((wf&0x0f)>9)||Bf){wf=(wf-6)&0x0f;xf=(xf-1-Af)&0xff;jd|=0x0001|0x0010;}else{jd&=~(0x0001|0x0010);wf&=0x0f;}xa[0]=(xa[0]&~0xffff)|wf|(xf<<8);ya=jd;za=((ya>>6)&1)^1;Aa=24;}function Df(){var wf,Bf,Ef,jd;jd=hd();Ef=jd&0x0001;Bf=jd&0x0010;wf=xa[0]&0xff;jd=0;if(((wf&0x0f)>9)||Bf){wf=(wf+6)&0xff;jd|=0x0010;}if((wf>0x9f)||Ef){wf=(wf+0x60)&0xff;jd|=0x0001;}xa[0]=(xa[0]&~0xff)|wf;jd|=(wf==0)<<6;jd|=aa[wf]<<2;jd|=(wf&0x80);ya=jd;za=((ya>>6)&1)^1;Aa=24;}function Ff(){var wf,Gf,Bf,Ef,jd;jd=hd();Ef=jd&0x0001;Bf=jd&0x0010;wf=xa[0]&0xff;jd=0;Gf=wf;if(((wf&0x0f)>9)||Bf){jd|=0x0010;if(wf<6||Ef)jd|=0x0001;wf=(wf-6)&0xff;}if((Gf>0x99)||Ef){wf=(wf-0x60)&0xff;jd|=0x0001;}xa[0]=(xa[0]&~0xff)|wf;jd|=(wf==0)<<6;jd|=aa[wf]<<2;jd|=(wf&0x80);ya=jd;za=((ya>>6)&1)^1;Aa=24;}function Hf(){var Ea,ga,Ha,Ia;Ea=Ta[Kb++];;if((Ea>>3)==3)Dc(6);fa=Pb(Ea);ga=kb();fa=(fa+4)&-1;Ha=kb();Ga=(Ea>>3)&7;Ia=xa[Ga];if(Ia<ga||Ia>Ha)Dc(5);}function If(){var Ea,ga,Ha,Ia;Ea=Ta[Kb++];;if((Ea>>3)==3)Dc(6);fa=Pb(Ea);ga=(ib()<<16)>>16;fa=(fa+2)&-1;Ha=(ib()<<16)>>16;Ga=(Ea>>3)&7;Ia=(xa[Ga]<<16)>>16;if(Ia<ga||Ia>Ha)Dc(5);}function Jf(){var ga,Ha,Ga;Ha=(xa[4]-16)>>0;fa=((Ha&Pa)+Oa)>>0;for(Ga=7;Ga>=0;Ga--){ga=xa[Ga];ub(ga);fa=(fa+2)>>0;}xa[4]=(xa[4]&~Pa)|((Ha)&Pa);}function Kf(){var ga,Ha,Ga;Ha=(xa[4]-32)>>0;fa=((Ha&Pa)+Oa)>>0;for(Ga=7;Ga>=0;Ga--){ga=xa[Ga];wb(ga);fa=(fa+4)>>0;}xa[4]=(xa[4]&~Pa)|((Ha)&Pa);}function Lf(){var Ga;fa=((xa[4]&Pa)+Oa)>>0;for(Ga=7;Ga>=0;Ga--){if(Ga!=4){Wb(Ga,ib());}fa=(fa+2)>>0;}xa[4]=(xa[4]&~Pa)|((xa[4]+16)&Pa);}function Mf(){var Ga;fa=((xa[4]&Pa)+Oa)>>0;for(Ga=7;Ga>=0;Ga--){if(Ga!=4){xa[Ga]=kb();}fa=(fa+4)>>0;}xa[4]=(xa[4]&~Pa)|((xa[4]+32)&Pa);}function Nf(){var ga,Ha;Ha=xa[5];fa=((Ha&Pa)+Oa)>>0;ga=ib();Wb(5,ga);xa[4]=(xa[4]&~Pa)|((Ha+2)&Pa);}function Of(){var ga,Ha;Ha=xa[5];fa=((Ha&Pa)+Oa)>>0;ga=kb();xa[5]=ga;xa[4]=(xa[4]&~Pa)|((Ha+4)&Pa);}function Pf(){var cf,Qf,le,Rf,ga,Sf;cf=Ob();Qf=Ta[Kb++];;Qf&=0x1f;le=xa[4];Rf=xa[5];{le=(le-2)>>0;fa=((le&Pa)+Oa)>>0;ub(Rf);};Sf=le;if(Qf!=0){while(Qf>1){Rf=(Rf-2)>>0;fa=((Rf&Pa)+Oa)>>0;ga=ib();{le=(le-2)>>0;fa=((le&Pa)+Oa)>>0;ub(ga);};Qf--;}{le=(le-2)>>0;fa=((le&Pa)+Oa)>>0;ub(Sf);};}le=(le-cf)>>0;fa=((le&Pa)+Oa)>>0;ob();xa[5]=(xa[5]&~Pa)|(Sf&Pa);xa[4]=le;}function Tf(){var cf,Qf,le,Rf,ga,Sf;cf=Ob();Qf=Ta[Kb++];;Qf&=0x1f;le=xa[4];Rf=xa[5];{le=(le-4)>>0;fa=((le&Pa)+Oa)>>0;wb(Rf);};Sf=le;if(Qf!=0){while(Qf>1){Rf=(Rf-4)>>0;fa=((Rf&Pa)+Oa)>>0;ga=kb();{le=(le-4)>>0;fa=((le&Pa)+Oa)>>0;wb(ga);};Qf--;}{le=(le-4)>>0;fa=((le&Pa)+Oa)>>0;wb(Sf);};}le=(le-cf)>>0;fa=((le&Pa)+Oa)>>0;qb();xa[5]=(xa[5]&~Pa)|(Sf&Pa);xa[4]=(xa[4]&~Pa)|((le)&Pa);}function Uf(Sb){var ga,Ha,Ea;Ea=Ta[Kb++];;if((Ea>>3)==3)Dc(6);fa=Pb(Ea);ga=kb();fa+=4;Ha=ib();Ie(Sb,Ha);xa[(Ea>>3)&7]=ga;}function Vf(Sb){var ga,Ha,Ea;Ea=Ta[Kb++];;if((Ea>>3)==3)Dc(6);fa=Pb(Ea);ga=ib();fa+=2;Ha=ib();Ie(Sb,Ha);Wb((Ea>>3)&7,ga);}function Wf(){var Xf,Yf,Zf,ag,Sa,ga;Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);if(Da&0x0080)Xf=0xffff;else Xf=-1;Yf=xa[7];Zf=xa[2]&0xffff;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;{ga=wa.ld8_port(Zf);fa=((Yf&Xf)+wa.segs[0].base)>>0;sb(ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}}else{ga=wa.ld8_port(Zf);fa=((Yf&Xf)+wa.segs[0].base)>>0;sb(ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);}}function bg(){var Xf,cg,Sb,ag,Zf,Sa,ga;Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];Zf=xa[2]&0xffff;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;fa=((cg&Xf)+wa.segs[Sb].base)>>0;ga=gb();wa.st8_port(Zf,ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<0))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}else{fa=((cg&Xf)+wa.segs[Sb].base)>>0;ga=gb();wa.st8_port(Zf,ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<0))&Xf);}}function dg(){var Xf,Yf,cg,ag,Sb,eg;if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];Yf=xa[7];fa=((cg&Xf)+wa.segs[Sb].base)>>0;eg=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;{ga=gb();fa=eg;sb(ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<0))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}}else{ga=gb();fa=eg;sb(ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<0))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);}}function fg(){var Xf,Yf,ag;if(Da&0x0080)Xf=0xffff;else Xf=-1;Yf=xa[7];fa=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;{sb(xa[0]);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}}else{sb(xa[0]);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);}}function gg(){var Xf,Yf,cg,ag,Sb,eg;if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];Yf=xa[7];fa=((cg&Xf)+wa.segs[Sb].base)>>0;eg=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;ga=gb();fa=eg;Ha=gb();gc(7,ga,Ha);xa[6]=(cg&~Xf)|((cg+(wa.df<<0))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(Da&0x0010){if(!(za==0))return;}else{if((za==0))return;}if(ag&Xf)Kb=Mb;;}else{ga=gb();fa=eg;Ha=gb();gc(7,ga,Ha);xa[6]=(cg&~Xf)|((cg+(wa.df<<0))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);}}function hg(){var Xf,cg,Sb,ag,ga;if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];fa=((cg&Xf)+wa.segs[Sb].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;ga=gb();xa[0]=(xa[0]&-256)|ga;xa[6]=(cg&~Xf)|((cg+(wa.df<<0))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}else{ga=gb();xa[0]=(xa[0]&-256)|ga;xa[6]=(cg&~Xf)|((cg+(wa.df<<0))&Xf);}}function ig(){var Xf,Yf,ag,ga;if(Da&0x0080)Xf=0xffff;else Xf=-1;Yf=xa[7];fa=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;ga=gb();gc(7,xa[0],ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(Da&0x0010){if(!(za==0))return;}else{if((za==0))return;}if(ag&Xf)Kb=Mb;;}else{ga=gb();gc(7,xa[0],ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<0))&Xf);}}function jg(){var Xf,Yf,Zf,ag,Sa,ga;Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);if(Da&0x0080)Xf=0xffff;else Xf=-1;Yf=xa[7];Zf=xa[2]&0xffff;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;{ga=wa.ld16_port(Zf);fa=((Yf&Xf)+wa.segs[0].base)>>0;ub(ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}}else{ga=wa.ld16_port(Zf);fa=((Yf&Xf)+wa.segs[0].base)>>0;ub(ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);}}function kg(){var Xf,cg,Sb,ag,Zf,Sa,ga;Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];Zf=xa[2]&0xffff;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;fa=((cg&Xf)+wa.segs[Sb].base)>>0;ga=ib();wa.st16_port(Zf,ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<1))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}else{fa=((cg&Xf)+wa.segs[Sb].base)>>0;ga=ib();wa.st16_port(Zf,ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<1))&Xf);}}function lg(){var Xf,Yf,cg,ag,Sb,eg;if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];Yf=xa[7];fa=((cg&Xf)+wa.segs[Sb].base)>>0;eg=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;{ga=ib();fa=eg;ub(ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<1))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}}else{ga=ib();fa=eg;ub(ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<1))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);}}function mg(){var Xf,Yf,ag;if(Da&0x0080)Xf=0xffff;else Xf=-1;Yf=xa[7];fa=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;{ub(xa[0]);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}}else{ub(xa[0]);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);}}function ng(){var Xf,Yf,cg,ag,Sb,eg;if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];Yf=xa[7];fa=((cg&Xf)+wa.segs[Sb].base)>>0;eg=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;ga=ib();fa=eg;Ha=ib();dc(7,ga,Ha);xa[6]=(cg&~Xf)|((cg+(wa.df<<1))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(Da&0x0010){if(!(za==0))return;}else{if((za==0))return;}if(ag&Xf)Kb=Mb;;}else{ga=ib();fa=eg;Ha=ib();dc(7,ga,Ha);xa[6]=(cg&~Xf)|((cg+(wa.df<<1))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);}}function og(){var Xf,cg,Sb,ag,ga;if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];fa=((cg&Xf)+wa.segs[Sb].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;ga=ib();xa[0]=(xa[0]&-65536)|ga;xa[6]=(cg&~Xf)|((cg+(wa.df<<1))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}else{ga=ib();xa[0]=(xa[0]&-65536)|ga;xa[6]=(cg&~Xf)|((cg+(wa.df<<1))&Xf);}}function pg(){var Xf,Yf,ag,ga;if(Da&0x0080)Xf=0xffff;else Xf=-1;Yf=xa[7];fa=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;ga=ib();dc(7,xa[0],ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(Da&0x0010){if(!(za==0))return;}else{if((za==0))return;}if(ag&Xf)Kb=Mb;;}else{ga=ib();dc(7,xa[0],ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<1))&Xf);}}function qg(){var Xf,Yf,Zf,ag,Sa,ga;Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);if(Da&0x0080)Xf=0xffff;else Xf=-1;Yf=xa[7];Zf=xa[2]&0xffff;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;if(Xf==-1&&wa.df==1&&(fa&3)==0){var rg,l,sg,i,tg,ga,ug;rg=ag>>>0;l=(4096-(fa&0xfff))>>2;if(rg>l)rg=l;sg=td(xa[7],1);ug=wa.ld32_port;sg>>=2;for(i=0;i<rg;i++){ga=ug(Zf);Wa[sg+i]=ga;}tg=rg<<2;xa[7]=(Yf+tg)>>0;xa[1]=ag=(ag-rg)>>0;if(ag)Kb=Mb;}else{ga=wa.ld32_port(Zf);fa=((Yf&Xf)+wa.segs[0].base)>>0;wb(ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}}else{ga=wa.ld32_port(Zf);fa=((Yf&Xf)+wa.segs[0].base)>>0;wb(ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);}}function vg(){var Xf,cg,Sb,ag,Zf,Sa,ga;Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];Zf=xa[2]&0xffff;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;fa=((cg&Xf)+wa.segs[Sb].base)>>0;ga=kb();wa.st32_port(Zf,ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<2))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}else{fa=((cg&Xf)+wa.segs[Sb].base)>>0;ga=kb();wa.st32_port(Zf,ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<2))&Xf);}}function wg(){var Xf,Yf,cg,ag,Sb,eg;if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];Yf=xa[7];fa=((cg&Xf)+wa.segs[Sb].base)>>0;eg=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;if(Xf==-1&&wa.df==1&&((fa|eg)&3)==0){var rg,l,xg,sg,i,tg;rg=ag>>>0;l=(4096-(fa&0xfff))>>2;if(rg>l)rg=l;l=(4096-(eg&0xfff))>>2;if(rg>l)rg=l;xg=td(fa,0);sg=td(eg,1);tg=rg<<2;sg>>=2;xg>>=2;for(i=0;i<rg;i++)Wa[sg+i]=Wa[xg+i];xa[6]=(cg+tg)>>0;xa[7]=(Yf+tg)>>0;xa[1]=ag=(ag-rg)>>0;if(ag)Kb=Mb;}else{ga=kb();fa=eg;wb(ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<2))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}}else{ga=kb();fa=eg;wb(ga);xa[6]=(cg&~Xf)|((cg+(wa.df<<2))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);}}function yg(){var Xf,Yf,ag;if(Da&0x0080)Xf=0xffff;else Xf=-1;Yf=xa[7];fa=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;if(Xf==-1&&wa.df==1&&(fa&3)==0){var rg,l,sg,i,tg,ga;rg=ag>>>0;l=(4096-(fa&0xfff))>>2;if(rg>l)rg=l;sg=td(xa[7],1);ga=xa[0];sg>>=2;for(i=0;i<rg;i++)Wa[sg+i]=ga;tg=rg<<2;xa[7]=(Yf+tg)>>0;xa[1]=ag=(ag-rg)>>0;if(ag)Kb=Mb;}else{wb(xa[0]);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}}else{wb(xa[0]);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);}}function zg(){var Xf,Yf,cg,ag,Sb,eg;if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];Yf=xa[7];fa=((cg&Xf)+wa.segs[Sb].base)>>0;eg=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;ga=kb();fa=eg;Ha=kb();Xb(7,ga,Ha);xa[6]=(cg&~Xf)|((cg+(wa.df<<2))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(Da&0x0010){if(!(za==0))return;}else{if((za==0))return;}if(ag&Xf)Kb=Mb;;}else{ga=kb();fa=eg;Ha=kb();Xb(7,ga,Ha);xa[6]=(cg&~Xf)|((cg+(wa.df<<2))&Xf);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);}}function Ag(){var Xf,cg,Sb,ag,ga;if(Da&0x0080)Xf=0xffff;else Xf=-1;Sb=Da&0x000f;if(Sb==0)Sb=3;else Sb--;cg=xa[6];fa=((cg&Xf)+wa.segs[Sb].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;ga=kb();xa[0]=ga;xa[6]=(cg&~Xf)|((cg+(wa.df<<2))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(ag&Xf)Kb=Mb;;}else{ga=kb();xa[0]=ga;xa[6]=(cg&~Xf)|((cg+(wa.df<<2))&Xf);}}function Bg(){var Xf,Yf,ag,ga;if(Da&0x0080)Xf=0xffff;else Xf=-1;Yf=xa[7];fa=((Yf&Xf)+wa.segs[0].base)>>0;if(Da&(0x0010|0x0020)){ag=xa[1];if((ag&Xf)==0)return;;ga=kb();Xb(7,xa[0],ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);xa[1]=ag=(ag&~Xf)|((ag-1)&Xf);if(Da&0x0010){if(!(za==0))return;}else{if((za==0))return;}if(ag&Xf)Kb=Mb;;}else{ga=kb();Xb(7,xa[0],ga);xa[7]=(Yf&~Xf)|((Yf+(wa.df<<2))&Xf);}}wa=this;Ta=this.phys_mem8;Va=this.phys_mem16;Wa=this.phys_mem32;Za=this.tlb_read_user;ab=this.tlb_write_user;Xa=this.tlb_read_kernel;Ya=this.tlb_write_kernel;if(wa.cpl==3){bb=Za;cb=ab;}else{bb=Xa;cb=Ya;}if(wa.halted){if(wa.hard_irq!=0&&(wa.eflags&0x00000200)){wa.halted=0;}else{return 257;}}xa=this.regs;ya=this.cc_src;za=this.cc_dst;Aa=this.cc_op;Ba=this.cc_op2;Ca=this.cc_dst2;Jb=this.eip;ce();La=256;Ka=ua;if(va){;Ae(va.intno,0,va.error_code,0,0);}if(wa.hard_intno>=0){;Ae(wa.hard_intno,0,0,0,1);wa.hard_intno=-1;}if(wa.hard_irq!=0&&(wa.eflags&0x00000200)){wa.hard_intno=wa.get_hard_intno();;Ae(wa.hard_intno,0,0,0,1);wa.hard_intno=-1;}Kb=0;Mb=0;Cg:do{;Jb=(Jb+Kb-Mb)>>0;Nb=(Jb+Na)>>0;Lb=bb[Nb>>>12];if(((Lb|Nb)&0xfff)>=(4096-15+1)){var Dg;if(Lb==-1)fb(Nb,0,wa.cpl==3);Lb=bb[Nb>>>12];Mb=Kb=Nb^Lb;b=Ta[Kb++];;Dg=Nb&0xfff;if(Dg>=(4096-15+1)){ga=Cd(Nb,b);if((Dg+ga)>4096){Mb=Kb=this.mem_size;for(Ha=0;Ha<ga;Ha++){fa=(Nb+Ha)>>0;Ta[Kb+Ha]=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);}Kb++;}}}else{Mb=Kb=Nb^Lb;b=Ta[Kb++];;}b|=(Da=Ra)&0x0100;Fd:for(;;){switch(b){case 0x66:if(Da==Ra)Cd(Nb,b);if(Ra&0x0100)Da&=~0x0100;else Da|=0x0100;b=Ta[Kb++];;b|=(Da&0x0100);break;case 0x67:if(Da==Ra)Cd(Nb,b);if(Ra&0x0080)Da&=~0x0080;else Da|=0x0080;b=Ta[Kb++];;b|=(Da&0x0100);break;case 0xf0:if(Da==Ra)Cd(Nb,b);Da|=0x0040;b=Ta[Kb++];;b|=(Da&0x0100);break;case 0xf2:if(Da==Ra)Cd(Nb,b);Da|=0x0020;b=Ta[Kb++];;b|=(Da&0x0100);break;case 0xf3:if(Da==Ra)Cd(Nb,b);Da|=0x0010;b=Ta[Kb++];;b|=(Da&0x0100);break;case 0x26:case 0x2e:case 0x36:case 0x3e:if(Da==Ra)Cd(Nb,b);Da=(Da&~0x000f)|(((b>>3)&3)+1);b=Ta[Kb++];;b|=(Da&0x0100);;break;case 0x64:case 0x65:if(Da==Ra)Cd(Nb,b);Da=(Da&~0x000f)|((b&7)+1);b=Ta[Kb++];;b|=(Da&0x0100);;break;case 0xb0:case 0xb1:case 0xb2:case 0xb3:case 0xb4:case 0xb5:case 0xb6:case 0xb7:ga=Ta[Kb++];;b&=7;Ua=(b&4)<<1;xa[b&3]=(xa[b&3]&~(0xff<<Ua))|(((ga)&0xff)<<Ua);break Fd;case 0xb8:case 0xb9:case 0xba:case 0xbb:case 0xbc:case 0xbd:case 0xbe:case 0xbf:{ga=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};xa[b&7]=ga;break Fd;case 0x88:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;ga=(xa[Ga&3]>>((Ga&4)<<1));if((Ea>>6)==3){Fa=Ea&7;Ua=(Fa&4)<<1;xa[Fa&3]=(xa[Fa&3]&~(0xff<<Ua))|(((ga)&0xff)<<Ua);}else{fa=Pb(Ea);{Ua=cb[fa>>>12];if(Ua==-1){rb(ga);}else{Ta[fa^Ua]=ga;}};}break Fd;case 0x89:Ea=Ta[Kb++];;ga=xa[(Ea>>3)&7];if((Ea>>6)==3){xa[Ea&7]=ga;}else{fa=Pb(Ea);{Ua=cb[fa>>>12];if((Ua|fa)&3){vb(ga);}else{Wa[(fa^Ua)>>2]=ga;}};}break Fd;case 0x8a:Ea=Ta[Kb++];;if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);ga=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);}Ga=(Ea>>3)&7;Ua=(Ga&4)<<1;xa[Ga&3]=(xa[Ga&3]&~(0xff<<Ua))|(((ga)&0xff)<<Ua);break Fd;case 0x8b:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=(((Ua=bb[fa>>>12])|fa)&3?jb():Wa[(fa^Ua)>>2]);}xa[(Ea>>3)&7]=ga;break Fd;case 0xa0:fa=Ub();ga=gb();xa[0]=(xa[0]&-256)|ga;break Fd;case 0xa1:fa=Ub();ga=kb();xa[0]=ga;break Fd;case 0xa2:fa=Ub();sb(xa[0]);break Fd;case 0xa3:fa=Ub();wb(xa[0]);break Fd;case 0xd7:fa=(xa[3]+(xa[0]&0xff))>>0;if(Da&0x0080)fa&=0xffff;Ga=Da&0x000f;if(Ga==0)Ga=3;else Ga--;fa=(fa+wa.segs[Ga].base)>>0;ga=gb();Vb(0,ga);break Fd;case 0xc6:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=Ta[Kb++];;Vb(Ea&7,ga);}else{fa=Pb(Ea);ga=Ta[Kb++];;sb(ga);}break Fd;case 0xc7:Ea=Ta[Kb++];;if((Ea>>6)==3){{ga=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};xa[Ea&7]=ga;}else{fa=Pb(Ea);{ga=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};wb(ga);}break Fd;case 0x91:case 0x92:case 0x93:case 0x94:case 0x95:case 0x96:case 0x97:Ga=b&7;ga=xa[0];xa[0]=xa[Ga];xa[Ga]=ga;break Fd;case 0x86:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));Vb(Fa,(xa[Ga&3]>>((Ga&4)<<1)));}else{fa=Pb(Ea);ga=mb();sb((xa[Ga&3]>>((Ga&4)<<1)));}Vb(Ga,ga);break Fd;case 0x87:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=xa[Fa];xa[Fa]=xa[Ga];}else{fa=Pb(Ea);ga=qb();wb(xa[Ga]);}xa[Ga]=ga;break Fd;case 0x8e:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if(Ga>=6||Ga==1)Dc(6);if((Ea>>6)==3){ga=xa[Ea&7]&0xffff;}else{fa=Pb(Ea);ga=ib();}Ie(Ga,ga);break Fd;case 0x8c:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if(Ga>=6)Dc(6);ga=wa.segs[Ga].selector;if((Ea>>6)==3){if((((Da>>8)&1)^1)){xa[Ea&7]=ga;}else{Wb(Ea&7,ga);}}else{fa=Pb(Ea);ub(ga);}break Fd;case 0xc4:Uf(0);break Fd;case 0xc5:Uf(3);break Fd;case 0x00:case 0x08:case 0x10:case 0x18:case 0x20:case 0x28:case 0x30:case 0x38:Ea=Ta[Kb++];;Ja=b>>3;Ga=(Ea>>3)&7;Ha=(xa[Ga&3]>>((Ga&4)<<1));if((Ea>>6)==3){Fa=Ea&7;Vb(Fa,gc(Ja,(xa[Fa&3]>>((Fa&4)<<1)),Ha));}else{fa=Pb(Ea);if(Ja!=7){ga=mb();ga=gc(Ja,ga,Ha);sb(ga);}else{ga=gb();gc(7,ga,Ha);}}break Fd;case 0x01:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];if((Ea>>6)==3){Fa=Ea&7;{ya=Ha;za=xa[Fa]=(xa[Fa]+ya)>>0;Aa=2;};}else{fa=Pb(Ea);ga=qb();{ya=Ha;za=ga=(ga+ya)>>0;Aa=2;};wb(ga);}break Fd;case 0x09:case 0x11:case 0x19:case 0x21:case 0x29:case 0x31:Ea=Ta[Kb++];;Ja=b>>3;Ha=xa[(Ea>>3)&7];if((Ea>>6)==3){Fa=Ea&7;xa[Fa]=Xb(Ja,xa[Fa],Ha);}else{fa=Pb(Ea);ga=qb();ga=Xb(Ja,ga,Ha);wb(ga);}break Fd;case 0x39:Ea=Ta[Kb++];;Ja=b>>3;Ha=xa[(Ea>>3)&7];if((Ea>>6)==3){Fa=Ea&7;{ya=Ha;za=(xa[Fa]-ya)>>0;Aa=8;};}else{fa=Pb(Ea);ga=kb();{ya=Ha;za=(ga-ya)>>0;Aa=8;};}break Fd;case 0x02:case 0x0a:case 0x12:case 0x1a:case 0x22:case 0x2a:case 0x32:case 0x3a:Ea=Ta[Kb++];;Ja=b>>3;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;Ha=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);Ha=gb();}Vb(Ga,gc(Ja,(xa[Ga&3]>>((Ga&4)<<1)),Ha));break Fd;case 0x03:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=kb();}{ya=Ha;za=xa[Ga]=(xa[Ga]+ya)>>0;Aa=2;};break Fd;case 0x0b:case 0x13:case 0x1b:case 0x23:case 0x2b:case 0x33:Ea=Ta[Kb++];;Ja=b>>3;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=kb();}xa[Ga]=Xb(Ja,xa[Ga],Ha);break Fd;case 0x3b:Ea=Ta[Kb++];;Ja=b>>3;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=kb();}{ya=Ha;za=(xa[Ga]-ya)>>0;Aa=8;};break Fd;case 0x04:case 0x0c:case 0x14:case 0x1c:case 0x24:case 0x2c:case 0x34:case 0x3c:Ha=Ta[Kb++];;Ja=b>>3;Vb(0,gc(Ja,xa[0]&0xff,Ha));break Fd;case 0x05:{Ha=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};{ya=Ha;za=xa[0]=(xa[0]+ya)>>0;Aa=2;};break Fd;case 0x0d:case 0x15:case 0x1d:case 0x25:case 0x2d:{Ha=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};Ja=b>>3;xa[0]=Xb(Ja,xa[0],Ha);break Fd;case 0x35:{Ha=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};{za=xa[0]=xa[0]^Ha;Aa=14;};break Fd;case 0x3d:{Ha=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};{ya=Ha;za=(xa[0]-ya)>>0;Aa=8;};break Fd;case 0x80:case 0x82:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;Ha=Ta[Kb++];;Vb(Fa,gc(Ja,(xa[Fa&3]>>((Fa&4)<<1)),Ha));}else{fa=Pb(Ea);Ha=Ta[Kb++];;if(Ja!=7){ga=mb();ga=gc(Ja,ga,Ha);sb(ga);}else{ga=gb();gc(7,ga,Ha);}}break Fd;case 0x81:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if(Ja==7){if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}{Ha=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};{ya=Ha;za=(ga-ya)>>0;Aa=8;};}else{if((Ea>>6)==3){Fa=Ea&7;{Ha=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};xa[Fa]=Xb(Ja,xa[Fa],Ha);}else{fa=Pb(Ea);{Ha=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};ga=qb();ga=Xb(Ja,ga,Ha);wb(ga);}}break Fd;case 0x83:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if(Ja==7){if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}Ha=((Ta[Kb++]<<24)>>24);;{ya=Ha;za=(ga-ya)>>0;Aa=8;};}else{if((Ea>>6)==3){Fa=Ea&7;Ha=((Ta[Kb++]<<24)>>24);;xa[Fa]=Xb(Ja,xa[Fa],Ha);}else{fa=Pb(Ea);Ha=((Ta[Kb++]<<24)>>24);;ga=qb();ga=Xb(Ja,ga,Ha);wb(ga);}}break Fd;case 0x40:case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46:case 0x47:Ga=b&7;{if(Aa<25){Ba=Aa;Ca=za;}xa[Ga]=za=(xa[Ga]+1)>>0;Aa=27;};break Fd;case 0x48:case 0x49:case 0x4a:case 0x4b:case 0x4c:case 0x4d:case 0x4e:case 0x4f:Ga=b&7;{if(Aa<25){Ba=Aa;Ca=za;}xa[Ga]=za=(xa[Ga]-1)>>0;Aa=30;};break Fd;case 0x6b:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=kb();}Ia=((Ta[Kb++]<<24)>>24);;xa[Ga]=Wc(Ha,Ia);break Fd;case 0x69:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=kb();}{Ia=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};xa[Ga]=Wc(Ha,Ia);break Fd;case 0x84:Ea=Ta[Kb++];;if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);ga=gb();}Ga=(Ea>>3)&7;Ha=(xa[Ga&3]>>((Ga&4)<<1));{za=(((ga&Ha)<<24)>>24);Aa=12;};break Fd;case 0x85:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}Ha=xa[(Ea>>3)&7];{za=ga&Ha;Aa=14;};break Fd;case 0xa8:Ha=Ta[Kb++];;{za=(((xa[0]&Ha)<<24)>>24);Aa=12;};break Fd;case 0xa9:{Ha=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};{za=xa[0]&Ha;Aa=14;};break Fd;case 0xf6:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 0:if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);ga=gb();}Ha=Ta[Kb++];;{za=(((ga&Ha)<<24)>>24);Aa=12;};break;case 2:if((Ea>>6)==3){Fa=Ea&7;Vb(Fa,~(xa[Fa&3]>>((Fa&4)<<1)));}else{fa=Pb(Ea);ga=mb();ga=~ga;sb(ga);}break;case 3:if((Ea>>6)==3){Fa=Ea&7;Vb(Fa,gc(5,0,(xa[Fa&3]>>((Fa&4)<<1))));}else{fa=Pb(Ea);ga=mb();ga=gc(5,0,ga);sb(ga);}break;case 4:if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);ga=gb();}Wb(0,Oc(xa[0],ga));break;case 5:if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);ga=gb();}Wb(0,Pc(xa[0],ga));break;case 6:if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);ga=gb();}Cc(ga);break;case 7:if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);ga=gb();}Ec(ga);break;default:Dc(6);}break Fd;case 0xf7:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 0:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}{Ha=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};{za=ga&Ha;Aa=14;};break;case 2:if((Ea>>6)==3){Fa=Ea&7;xa[Fa]=~xa[Fa];}else{fa=Pb(Ea);ga=qb();ga=~ga;wb(ga);}break;case 3:if((Ea>>6)==3){Fa=Ea&7;xa[Fa]=Xb(5,0,xa[Fa]);}else{fa=Pb(Ea);ga=qb();ga=Xb(5,0,ga);wb(ga);}break;case 4:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}xa[0]=Vc(xa[0],ga);xa[2]=Ma;break;case 5:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}xa[0]=Wc(xa[0],ga);xa[2]=Ma;break;case 6:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}xa[0]=Hc(xa[2],xa[0],ga);xa[2]=Ma;break;case 7:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}xa[0]=Lc(xa[2],xa[0],ga);xa[2]=Ma;break;default:Dc(6);}break Fd;case 0xc0:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if((Ea>>6)==3){Ha=Ta[Kb++];;Fa=Ea&7;Vb(Fa,jc(Ja,(xa[Fa&3]>>((Fa&4)<<1)),Ha));}else{fa=Pb(Ea);Ha=Ta[Kb++];;ga=mb();ga=jc(Ja,ga,Ha);sb(ga);}break Fd;case 0xc1:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if((Ea>>6)==3){Ha=Ta[Kb++];;Fa=Ea&7;xa[Fa]=nc(Ja,xa[Fa],Ha);}else{fa=Pb(Ea);Ha=Ta[Kb++];;ga=qb();ga=nc(Ja,ga,Ha);wb(ga);}break Fd;case 0xd0:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;Vb(Fa,jc(Ja,(xa[Fa&3]>>((Fa&4)<<1)),1));}else{fa=Pb(Ea);ga=mb();ga=jc(Ja,ga,1);sb(ga);}break Fd;case 0xd1:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;xa[Fa]=nc(Ja,xa[Fa],1);}else{fa=Pb(Ea);ga=qb();ga=nc(Ja,ga,1);wb(ga);}break Fd;case 0xd2:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;Ha=xa[1]&0xff;if((Ea>>6)==3){Fa=Ea&7;Vb(Fa,jc(Ja,(xa[Fa&3]>>((Fa&4)<<1)),Ha));}else{fa=Pb(Ea);ga=mb();ga=jc(Ja,ga,Ha);sb(ga);}break Fd;case 0xd3:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;Ha=xa[1]&0xff;if((Ea>>6)==3){Fa=Ea&7;xa[Fa]=nc(Ja,xa[Fa],Ha);}else{fa=Pb(Ea);ga=qb();ga=nc(Ja,ga,Ha);wb(ga);}break Fd;case 0x98:xa[0]=(xa[0]<<16)>>16;break Fd;case 0x99:xa[2]=xa[0]>>31;break Fd;case 0x50:case 0x51:case 0x52:case 0x53:case 0x54:case 0x55:case 0x56:case 0x57:ga=xa[b&7];if(Qa){fa=(xa[4]-4)>>0;{Ua=cb[fa>>>12];if((Ua|fa)&3){vb(ga);}else{Wa[(fa^Ua)>>2]=ga;}};xa[4]=fa;}else{xd(ga);}break Fd;case 0x58:case 0x59:case 0x5a:case 0x5b:case 0x5c:case 0x5d:case 0x5e:case 0x5f:if(Qa){fa=xa[4];ga=(((Ua=bb[fa>>>12])|fa)&3?jb():Wa[(fa^Ua)>>2]);xa[4]=(fa+4)>>0;}else{ga=Ad();Bd();}xa[b&7]=ga;break Fd;case 0x60:Kf();break Fd;case 0x61:Mf();break Fd;case 0x8f:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=Ad();Bd();xa[Ea&7]=ga;}else{ga=Ad();Ha=xa[4];Bd();Ia=xa[4];fa=Pb(Ea);xa[4]=Ha;wb(ga);xa[4]=Ia;}break Fd;case 0x68:{ga=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};if(Qa){fa=(xa[4]-4)>>0;wb(ga);xa[4]=fa;}else{xd(ga);}break Fd;case 0x6a:ga=((Ta[Kb++]<<24)>>24);;if(Qa){fa=(xa[4]-4)>>0;wb(ga);xa[4]=fa;}else{xd(ga);}break Fd;case 0xc8:Tf();break Fd;case 0xc9:if(Qa){fa=xa[5];ga=kb();xa[5]=ga;xa[4]=(fa+4)>>0;}else{Of();}break Fd;case 0x9c:Sa=(wa.eflags>>12)&3;if((wa.eflags&0x00020000)&&Sa!=3)Dc(13);ga=id()&~(0x00020000|0x00010000);if((((Da>>8)&1)^1)){xd(ga);}else{vd(ga);}break Fd;case 0x9d:Sa=(wa.eflags>>12)&3;if((wa.eflags&0x00020000)&&Sa!=3)Dc(13);if((((Da>>8)&1)^1)){ga=Ad();Bd();Ha=-1;}else{ga=yd();zd();Ha=0xffff;}Ia=(0x00000100|0x00040000|0x00200000|0x00004000);if(wa.cpl==0){Ia|=0x00000200|0x00003000;}else{if(wa.cpl<=Sa)Ia|=0x00000200;}kd(ga,Ia&Ha);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x06:case 0x0e:case 0x16:case 0x1e:xd(wa.segs[b>>3].selector);break Fd;case 0x07:case 0x17:case 0x1f:Ie(b>>3,Ad()&0xffff);Bd();break Fd;case 0x8d:Ea=Ta[Kb++];;if((Ea>>6)==3)Dc(6);Da=(Da&~0x000f)|(6+1);xa[(Ea>>3)&7]=Pb(Ea);break Fd;case 0xfe:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 0:if((Ea>>6)==3){Fa=Ea&7;Vb(Fa,hc((xa[Fa&3]>>((Fa&4)<<1))));}else{fa=Pb(Ea);ga=mb();ga=hc(ga);sb(ga);}break;case 1:if((Ea>>6)==3){Fa=Ea&7;Vb(Fa,ic((xa[Fa&3]>>((Fa&4)<<1))));}else{fa=Pb(Ea);ga=mb();ga=ic(ga);sb(ga);}break;default:Dc(6);}break Fd;case 0xff:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 0:if((Ea>>6)==3){Fa=Ea&7;{if(Aa<25){Ba=Aa;Ca=za;}xa[Fa]=za=(xa[Fa]+1)>>0;Aa=27;};}else{fa=Pb(Ea);ga=qb();{if(Aa<25){Ba=Aa;Ca=za;}ga=za=(ga+1)>>0;Aa=27;};wb(ga);}break;case 1:if((Ea>>6)==3){Fa=Ea&7;{if(Aa<25){Ba=Aa;Ca=za;}xa[Fa]=za=(xa[Fa]-1)>>0;Aa=30;};}else{fa=Pb(Ea);ga=qb();{if(Aa<25){Ba=Aa;Ca=za;}ga=za=(ga-1)>>0;Aa=30;};wb(ga);}break;case 2:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}Ha=(Jb+Kb-Mb);if(Qa){fa=(xa[4]-4)>>0;wb(Ha);xa[4]=fa;}else{xd(Ha);}Jb=ga,Kb=Mb=0;break;case 4:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}Jb=ga,Kb=Mb=0;break;case 6:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}if(Qa){fa=(xa[4]-4)>>0;wb(ga);xa[4]=fa;}else{xd(ga);}break;case 3:case 5:if((Ea>>6)==3)Dc(6);fa=Pb(Ea);ga=kb();fa=(fa+4)>>0;Ha=ib();if(Ja==3)Ze(1,Ha,ga,(Jb+Kb-Mb));else Oe(Ha,ga);break;default:Dc(6);}break Fd;case 0xeb:ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;break Fd;case 0xe9:{ga=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};Kb=(Kb+ga)>>0;break Fd;case 0xea:if((((Da>>8)&1)^1)){{ga=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};}else{ga=Ob();}Ha=Ob();Oe(Ha,ga);break Fd;case 0x70:if(Zc()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x71:if(!Zc()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x72:if(bc()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x73:if(!bc()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x74:if((za==0)){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x75:if(!(za==0)){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x76:if(ad()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x77:if(!ad()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x78:if((Aa==24?((ya>>7)&1):(za<0))){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x79:if(!(Aa==24?((ya>>7)&1):(za<0))){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x7a:if(bd()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x7b:if(!bd()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x7c:if(cd()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x7d:if(!cd()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x7e:if(dd()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0x7f:if(!dd()){ga=((Ta[Kb++]<<24)>>24);;Kb=(Kb+ga)>>0;}else{Kb=(Kb+1)>>0;}break Fd;case 0xe0:case 0xe1:case 0xe2:ga=((Ta[Kb++]<<24)>>24);;if(Da&0x0080)Ja=0xffff;else Ja=-1;Ha=(xa[1]-1)&Ja;xa[1]=(xa[1]&~Ja)|Ha;b&=3;if(b==0)Ia=!(za==0);else if(b==1)Ia=(za==0);else Ia=1;if(Ha&&Ia){if(Da&0x0100){Jb=(Jb+Kb-Mb+ga)&0xffff,Kb=Mb=0;}else{Kb=(Kb+ga)>>0;}}break Fd;case 0xe3:ga=((Ta[Kb++]<<24)>>24);;if(Da&0x0080)Ja=0xffff;else Ja=-1;if((xa[1]&Ja)==0){if(Da&0x0100){Jb=(Jb+Kb-Mb+ga)&0xffff,Kb=Mb=0;}else{Kb=(Kb+ga)>>0;}}break Fd;case 0xc2:Ha=(Ob()<<16)>>16;ga=Ad();xa[4]=(xa[4]&~Pa)|((xa[4]+4+Ha)&Pa);Jb=ga,Kb=Mb=0;break Fd;case 0xc3:if(Qa){fa=xa[4];ga=kb();xa[4]=(xa[4]+4)>>0;}else{ga=Ad();Bd();}Jb=ga,Kb=Mb=0;break Fd;case 0xe8:{ga=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};Ha=(Jb+Kb-Mb);if(Qa){fa=(xa[4]-4)>>0;wb(Ha);xa[4]=fa;}else{xd(Ha);}Kb=(Kb+ga)>>0;break Fd;case 0x9a:Ia=(((Da>>8)&1)^1);if(Ia){{ga=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};}else{ga=Ob();}Ha=Ob();Ze(Ia,Ha,ga,(Jb+Kb-Mb));{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xca:Ha=(Ob()<<16)>>16;nf((((Da>>8)&1)^1),Ha);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xcb:nf((((Da>>8)&1)^1),0);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xcf:mf((((Da>>8)&1)^1));{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x90:break Fd;case 0xcc:Ha=(Jb+Kb-Mb);Ae(3,1,0,Ha,0);break Fd;case 0xcd:ga=Ta[Kb++];;if((wa.eflags&0x00020000)&&((wa.eflags>>12)&3)!=3)Dc(13);Ha=(Jb+Kb-Mb);Ae(ga,1,0,Ha,0);break Fd;case 0xce:if(Zc()){Ha=(Jb+Kb-Mb);Ae(4,1,0,Ha,0);}break Fd;case 0x62:Hf();break Fd;case 0xf5:ya=hd()^0x0001;za=((ya>>6)&1)^1;Aa=24;break Fd;case 0xf8:ya=hd()&~0x0001;za=((ya>>6)&1)^1;Aa=24;break Fd;case 0xf9:ya=hd()|0x0001;za=((ya>>6)&1)^1;Aa=24;break Fd;case 0xfc:wa.df=1;break Fd;case 0xfd:wa.df=-1;break Fd;case 0xfa:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);wa.eflags&=~0x00000200;break Fd;case 0xfb:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);wa.eflags|=0x00000200;{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x9e:ya=((xa[0]>>8)&(0x0080|0x0040|0x0010|0x0004|0x0001))|(Zc()<<11);za=((ya>>6)&1)^1;Aa=24;break Fd;case 0x9f:ga=id();Vb(4,ga);break Fd;case 0xf4:if(wa.cpl!=0)Dc(13);wa.halted=1;La=257;break Cg;case 0xa4:dg();break Fd;case 0xa5:wg();break Fd;case 0xaa:fg();break Fd;case 0xab:yg();break Fd;case 0xa6:gg();break Fd;case 0xa7:zg();break Fd;case 0xac:hg();break Fd;case 0xad:Ag();break Fd;case 0xae:ig();break Fd;case 0xaf:Bg();break Fd;case 0x6c:Wf();{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x6d:qg();{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x6e:bg();{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x6f:vg();{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xd8:case 0xd9:case 0xda:case 0xdb:case 0xdc:case 0xdd:case 0xde:case 0xdf:if(wa.cr0&((1<<2)|(1<<3))){Dc(7);}Ea=Ta[Kb++];;Ga=(Ea>>3)&7;Fa=Ea&7;Ja=((b&7)<<3)|((Ea>>3)&7);Wb(0,0xffff);if((Ea>>6)==3){}else{fa=Pb(Ea);}break Fd;case 0x9b:break Fd;case 0xe4:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);ga=Ta[Kb++];;Vb(0,wa.ld8_port(ga));{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xe5:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);ga=Ta[Kb++];;xa[0]=wa.ld32_port(ga);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xe6:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);ga=Ta[Kb++];;wa.st8_port(ga,xa[0]&0xff);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xe7:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);ga=Ta[Kb++];;wa.st32_port(ga,xa[0]);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xec:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);Vb(0,wa.ld8_port(xa[2]&0xffff));{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xed:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);xa[0]=wa.ld32_port(xa[2]&0xffff);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xee:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);wa.st8_port(xa[2]&0xffff,xa[0]&0xff);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0xef:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);wa.st32_port(xa[2]&0xffff,xa[0]);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x27:Df();break Fd;case 0x2f:Ff();break Fd;case 0x37:zf();break Fd;case 0x3f:Cf();break Fd;case 0xd4:ga=Ta[Kb++];;vf(ga);break Fd;case 0xd5:ga=Ta[Kb++];;yf(ga);break Fd;case 0x63:tf();break Fd;case 0xd6:case 0xf1:Dc(6);break;case 0x0f:b=Ta[Kb++];;switch(b){case 0x80:case 0x81:case 0x82:case 0x83:case 0x84:case 0x85:case 0x86:case 0x87:case 0x88:case 0x89:case 0x8a:case 0x8b:case 0x8c:case 0x8d:case 0x8e:case 0x8f:{ga=Ta[Kb]|(Ta[Kb+1]<<8)|(Ta[Kb+2]<<16)|(Ta[Kb+3]<<24);Kb+=4;};if(fd(b&0xf))Kb=(Kb+ga)>>0;break Fd;case 0x90:case 0x91:case 0x92:case 0x93:case 0x94:case 0x95:case 0x96:case 0x97:case 0x98:case 0x99:case 0x9a:case 0x9b:case 0x9c:case 0x9d:case 0x9e:case 0x9f:Ea=Ta[Kb++];;ga=fd(b&0xf);if((Ea>>6)==3){Vb(Ea&7,ga);}else{fa=Pb(Ea);sb(ga);}break Fd;case 0x40:case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46:case 0x47:case 0x48:case 0x49:case 0x4a:case 0x4b:case 0x4c:case 0x4d:case 0x4e:case 0x4f:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=kb();}if(fd(b&0xf))xa[(Ea>>3)&7]=ga;break Fd;case 0xb6:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1))&0xff;}else{fa=Pb(Ea);ga=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);}xa[Ga]=ga;break Fd;case 0xb7:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){ga=xa[Ea&7]&0xffff;}else{fa=Pb(Ea);ga=ib();}xa[Ga]=ga;break Fd;case 0xbe:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);ga=(((Ua=bb[fa>>>12])==-1)?db():Ta[fa^Ua]);}xa[Ga]=(((ga)<<24)>>24);break Fd;case 0xbf:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}xa[Ga]=(((ga)<<16)>>16);break Fd;case 0x00:if(!(wa.cr0&(1<<0))||(wa.eflags&0x00020000))Dc(6);Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 0:case 1:if(Ja==0)ga=wa.ldt.selector;else ga=wa.tr.selector;if((Ea>>6)==3){Wb(Ea&7,ga);}else{fa=Pb(Ea);ub(ga);}break;case 2:case 3:if(wa.cpl!=0)Dc(13);if((Ea>>6)==3){ga=xa[Ea&7]&0xffff;}else{fa=Pb(Ea);ga=ib();}if(Ja==2)Ce(ga);else Ee(ga);break;case 4:case 5:if((Ea>>6)==3){ga=xa[Ea&7]&0xffff;}else{fa=Pb(Ea);ga=ib();}sf(ga,Ja&1);break;default:Dc(6);}break Fd;case 0x01:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 2:case 3:if((Ea>>6)==3)Dc(6);if(this.cpl!=0)Dc(13);fa=Pb(Ea);ga=ib();fa+=2;Ha=kb();if(Ja==2){this.gdt.base=Ha;this.gdt.limit=ga;}else{this.idt.base=Ha;this.idt.limit=ga;}break;case 7:if(this.cpl!=0)Dc(13);if((Ea>>6)==3)Dc(6);fa=Pb(Ea);wa.tlb_flush_page(fa&-4096);break;default:Dc(6);}break Fd;case 0x02:case 0x03:qf((((Da>>8)&1)^1),b&1);break Fd;case 0x20:if(wa.cpl!=0)Dc(13);Ea=Ta[Kb++];;if((Ea>>6)!=3)Dc(6);Ga=(Ea>>3)&7;switch(Ga){case 0:ga=wa.cr0;break;case 2:ga=wa.cr2;break;case 3:ga=wa.cr3;break;case 4:ga=wa.cr4;break;default:Dc(6);}xa[Ea&7]=ga;break Fd;case 0x22:if(wa.cpl!=0)Dc(13);Ea=Ta[Kb++];;if((Ea>>6)!=3)Dc(6);Ga=(Ea>>3)&7;ga=xa[Ea&7];switch(Ga){case 0:Pd(ga);break;case 2:wa.cr2=ga;break;case 3:Rd(ga);break;case 4:Td(ga);break;default:Dc(6);}break Fd;case 0x06:if(wa.cpl!=0)Dc(13);Pd(wa.cr0&~(1<<3));break Fd;case 0x23:if(wa.cpl!=0)Dc(13);Ea=Ta[Kb++];;if((Ea>>6)!=3)Dc(6);Ga=(Ea>>3)&7;ga=xa[Ea&7];if(Ga==4||Ga==5)Dc(6);break Fd;case 0xb2:case 0xb4:case 0xb5:Uf(b&7);break Fd;case 0xa2:uf();break Fd;case 0xa4:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];if((Ea>>6)==3){Ia=Ta[Kb++];;Fa=Ea&7;xa[Fa]=rc(xa[Fa],Ha,Ia);}else{fa=Pb(Ea);Ia=Ta[Kb++];;ga=qb();ga=rc(ga,Ha,Ia);wb(ga);}break Fd;case 0xa5:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];Ia=xa[1];if((Ea>>6)==3){Fa=Ea&7;xa[Fa]=rc(xa[Fa],Ha,Ia);}else{fa=Pb(Ea);ga=qb();ga=rc(ga,Ha,Ia);wb(ga);}break Fd;case 0xac:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];if((Ea>>6)==3){Ia=Ta[Kb++];;Fa=Ea&7;xa[Fa]=sc(xa[Fa],Ha,Ia);}else{fa=Pb(Ea);Ia=Ta[Kb++];;ga=qb();ga=sc(ga,Ha,Ia);wb(ga);}break Fd;case 0xad:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];Ia=xa[1];if((Ea>>6)==3){Fa=Ea&7;xa[Fa]=sc(xa[Fa],Ha,Ia);}else{fa=Pb(Ea);ga=qb();ga=sc(ga,Ha,Ia);wb(ga);}break Fd;case 0xba:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 4:if((Ea>>6)==3){ga=xa[Ea&7];Ha=Ta[Kb++];;}else{fa=Pb(Ea);Ha=Ta[Kb++];;ga=kb();}uc(ga,Ha);break;case 5:case 6:case 7:if((Ea>>6)==3){Fa=Ea&7;Ha=Ta[Kb++];;xa[Fa]=xc(Ja&3,xa[Fa],Ha);}else{fa=Pb(Ea);Ha=Ta[Kb++];;ga=qb();ga=xc(Ja&3,ga,Ha);wb(ga);}break;default:Dc(6);}break Fd;case 0xa3:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);fa=(fa+((Ha>>5)<<2))>>0;ga=kb();}uc(ga,Ha);break Fd;case 0xab:case 0xb3:case 0xbb:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];Ja=(b>>3)&3;if((Ea>>6)==3){Fa=Ea&7;xa[Fa]=xc(Ja,xa[Fa],Ha);}else{fa=Pb(Ea);fa=(fa+((Ha>>5)<<2))>>0;ga=qb();ga=xc(Ja,ga,Ha);wb(ga);}break Fd;case 0xbc:case 0xbd:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=kb();}if(b&1)xa[Ga]=Bc(xa[Ga],Ha);else xa[Ga]=zc(xa[Ga],Ha);break Fd;case 0xaf:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=kb();}xa[Ga]=Wc(xa[Ga],Ha);break Fd;case 0x31:if((wa.cr4&(1<<2))&&wa.cpl!=0)Dc(13);ga=md();xa[0]=ga>>>0;xa[2]=(ga/0x100000000)>>>0;break Fd;case 0xc0:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));Ha=gc(0,ga,(xa[Ga&3]>>((Ga&4)<<1)));Vb(Ga,ga);Vb(Fa,Ha);}else{fa=Pb(Ea);ga=mb();Ha=gc(0,ga,(xa[Ga&3]>>((Ga&4)<<1)));sb(Ha);Vb(Ga,ga);}break Fd;case 0xc1:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=xa[Fa];Ha=Xb(0,ga,xa[Ga]);xa[Ga]=ga;xa[Fa]=Ha;}else{fa=Pb(Ea);ga=qb();Ha=Xb(0,ga,xa[Ga]);wb(Ha);xa[Ga]=ga;}break Fd;case 0xb0:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));Ha=gc(5,xa[0],ga);if(Ha==0){Vb(Fa,(xa[Ga&3]>>((Ga&4)<<1)));}else{Vb(0,ga);}}else{fa=Pb(Ea);ga=mb();Ha=gc(5,xa[0],ga);if(Ha==0){sb((xa[Ga&3]>>((Ga&4)<<1)));}else{Vb(0,ga);}}break Fd;case 0xb1:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=xa[Fa];Ha=Xb(5,xa[0],ga);if(Ha==0){xa[Fa]=xa[Ga];}else{xa[0]=ga;}}else{fa=Pb(Ea);ga=qb();Ha=Xb(5,xa[0],ga);if(Ha==0){wb(xa[Ga]);}else{xa[0]=ga;}}break Fd;case 0xa0:case 0xa8:xd(wa.segs[(b>>3)&7].selector);break Fd;case 0xa1:case 0xa9:Ie((b>>3)&7,Ad()&0xffff);Bd();break Fd;case 0xc8:case 0xc9:case 0xca:case 0xcb:case 0xcc:case 0xcd:case 0xce:case 0xcf:Ga=b&7;ga=xa[Ga];ga=(ga>>>24)|((ga>>8)&0x0000ff00)|((ga<<8)&0x00ff0000)|(ga<<24);xa[Ga]=ga;break Fd;case 0x04:case 0x05:case 0x07:case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0c:case 0x0d:case 0x0e:case 0x0f:case 0x10:case 0x11:case 0x12:case 0x13:case 0x14:case 0x15:case 0x16:case 0x17:case 0x18:case 0x19:case 0x1a:case 0x1b:case 0x1c:case 0x1d:case 0x1e:case 0x1f:case 0x21:case 0x24:case 0x25:case 0x26:case 0x27:case 0x28:case 0x29:case 0x2a:case 0x2b:case 0x2c:case 0x2d:case 0x2e:case 0x2f:case 0x30:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case 0x37:case 0x38:case 0x39:case 0x3a:case 0x3b:case 0x3c:case 0x3d:case 0x3e:case 0x3f:case 0x50:case 0x51:case 0x52:case 0x53:case 0x54:case 0x55:case 0x56:case 0x57:case 0x58:case 0x59:case 0x5a:case 0x5b:case 0x5c:case 0x5d:case 0x5e:case 0x5f:case 0x60:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66:case 0x67:case 0x68:case 0x69:case 0x6a:case 0x6b:case 0x6c:case 0x6d:case 0x6e:case 0x6f:case 0x70:case 0x71:case 0x72:case 0x73:case 0x74:case 0x75:case 0x76:case 0x77:case 0x78:case 0x79:case 0x7a:case 0x7b:case 0x7c:case 0x7d:case 0x7e:case 0x7f:case 0xa6:case 0xa7:case 0xaa:case 0xae:case 0xb8:case 0xb9:case 0xc2:case 0xc3:case 0xc4:case 0xc5:case 0xc6:case 0xc7:case 0xd0:case 0xd1:case 0xd2:case 0xd3:case 0xd4:case 0xd5:case 0xd6:case 0xd7:case 0xd8:case 0xd9:case 0xda:case 0xdb:case 0xdc:case 0xdd:case 0xde:case 0xdf:case 0xe0:case 0xe1:case 0xe2:case 0xe3:case 0xe4:case 0xe5:case 0xe6:case 0xe7:case 0xe8:case 0xe9:case 0xea:case 0xeb:case 0xec:case 0xed:case 0xee:case 0xef:case 0xf0:case 0xf1:case 0xf2:case 0xf3:case 0xf4:case 0xf5:case 0xf6:case 0xf7:case 0xf8:case 0xf9:case 0xfa:case 0xfb:case 0xfc:case 0xfd:case 0xfe:case 0xff:default:Dc(6);}break;default:switch(b){case 0x189:Ea=Ta[Kb++];;ga=xa[(Ea>>3)&7];if((Ea>>6)==3){Wb(Ea&7,ga);}else{fa=Pb(Ea);ub(ga);}break Fd;case 0x18b:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}Wb((Ea>>3)&7,ga);break Fd;case 0x1b8:case 0x1b9:case 0x1ba:case 0x1bb:case 0x1bc:case 0x1bd:case 0x1be:case 0x1bf:Wb(b&7,Ob());break Fd;case 0x1a1:fa=Ub();ga=ib();Wb(0,ga);break Fd;case 0x1a3:fa=Ub();ub(xa[0]);break Fd;case 0x1c7:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=Ob();Wb(Ea&7,ga);}else{fa=Pb(Ea);ga=Ob();ub(ga);}break Fd;case 0x191:case 0x192:case 0x193:case 0x194:case 0x195:case 0x196:case 0x197:Ga=b&7;ga=xa[0];Wb(0,xa[Ga]);Wb(Ga,ga);break Fd;case 0x187:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=xa[Fa];Wb(Fa,xa[Ga]);}else{fa=Pb(Ea);ga=ob();ub(xa[Ga]);}Wb(Ga,ga);break Fd;case 0x1c4:Vf(0);break Fd;case 0x1c5:Vf(3);break Fd;case 0x101:case 0x109:case 0x111:case 0x119:case 0x121:case 0x129:case 0x131:case 0x139:Ea=Ta[Kb++];;Ja=(b>>3)&7;Ha=xa[(Ea>>3)&7];if((Ea>>6)==3){Fa=Ea&7;Wb(Fa,dc(Ja,xa[Fa],Ha));}else{fa=Pb(Ea);if(Ja!=7){ga=ob();ga=dc(Ja,ga,Ha);ub(ga);}else{ga=ib();dc(7,ga,Ha);}}break Fd;case 0x103:case 0x10b:case 0x113:case 0x11b:case 0x123:case 0x12b:case 0x133:case 0x13b:Ea=Ta[Kb++];;Ja=(b>>3)&7;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=ib();}Wb(Ga,dc(Ja,xa[Ga],Ha));break Fd;case 0x105:case 0x10d:case 0x115:case 0x11d:case 0x125:case 0x12d:case 0x135:case 0x13d:Ha=Ob();Ja=(b>>3)&7;Wb(0,dc(Ja,xa[0],Ha));break Fd;case 0x181:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;Ha=Ob();xa[Fa]=dc(Ja,xa[Fa],Ha);}else{fa=Pb(Ea);Ha=Ob();if(Ja!=7){ga=ob();ga=dc(Ja,ga,Ha);ub(ga);}else{ga=ib();dc(7,ga,Ha);}}break Fd;case 0x183:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;Ha=((Ta[Kb++]<<24)>>24);;Wb(Fa,dc(Ja,xa[Fa],Ha));}else{fa=Pb(Ea);Ha=((Ta[Kb++]<<24)>>24);;if(Ja!=7){ga=ob();ga=dc(Ja,ga,Ha);ub(ga);}else{ga=ib();dc(7,ga,Ha);}}break Fd;case 0x140:case 0x141:case 0x142:case 0x143:case 0x144:case 0x145:case 0x146:case 0x147:Ga=b&7;Wb(Ga,ec(xa[Ga]));break Fd;case 0x148:case 0x149:case 0x14a:case 0x14b:case 0x14c:case 0x14d:case 0x14e:case 0x14f:Ga=b&7;Wb(Ga,fc(xa[Ga]));break Fd;case 0x16b:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=ib();}Ia=((Ta[Kb++]<<24)>>24);;Wb(Ga,Rc(Ha,Ia));break Fd;case 0x169:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=ib();}Ia=Ob();Wb(Ga,Rc(Ha,Ia));break Fd;case 0x185:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}Ha=xa[(Ea>>3)&7];{za=(((ga&Ha)<<16)>>16);Aa=13;};break Fd;case 0x1a9:Ha=Ob();{za=(((xa[0]&Ha)<<16)>>16);Aa=13;};break Fd;case 0x1f7:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 0:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}Ha=Ob();{za=(((ga&Ha)<<16)>>16);Aa=13;};break;case 2:if((Ea>>6)==3){Fa=Ea&7;Wb(Fa,~xa[Fa]);}else{fa=Pb(Ea);ga=ob();ga=~ga;ub(ga);}break;case 3:if((Ea>>6)==3){Fa=Ea&7;Wb(Fa,dc(5,0,xa[Fa]));}else{fa=Pb(Ea);ga=ob();ga=dc(5,0,ga);ub(ga);}break;case 4:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}ga=Qc(xa[0],ga);Wb(0,ga);Wb(2,ga>>16);break;case 5:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}ga=Rc(xa[0],ga);Wb(0,ga);Wb(2,ga>>16);break;case 6:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}Fc(ga);break;case 7:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}Gc(ga);break;default:Dc(6);}break Fd;case 0x1c1:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if((Ea>>6)==3){Ha=Ta[Kb++];;Fa=Ea&7;Wb(Fa,mc(Ja,xa[Fa],Ha));}else{fa=Pb(Ea);Ha=Ta[Kb++];;ga=ob();ga=mc(Ja,ga,Ha);ub(ga);}break Fd;case 0x1d1:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;Wb(Fa,mc(Ja,xa[Fa],1));}else{fa=Pb(Ea);ga=ob();ga=mc(Ja,ga,1);ub(ga);}break Fd;case 0x1d3:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;Ha=xa[1]&0xff;if((Ea>>6)==3){Fa=Ea&7;Wb(Fa,mc(Ja,xa[Fa],Ha));}else{fa=Pb(Ea);ga=ob();ga=mc(Ja,ga,Ha);ub(ga);}break Fd;case 0x198:Wb(0,(xa[0]<<24)>>24);break Fd;case 0x199:Wb(2,(xa[0]<<16)>>31);break Fd;case 0x190:break Fd;case 0x150:case 0x151:case 0x152:case 0x153:case 0x154:case 0x155:case 0x156:case 0x157:vd(xa[b&7]);break Fd;case 0x158:case 0x159:case 0x15a:case 0x15b:case 0x15c:case 0x15d:case 0x15e:case 0x15f:ga=yd();zd();Wb(b&7,ga);break Fd;case 0x160:Jf();break Fd;case 0x161:Lf();break Fd;case 0x18f:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=yd();zd();Wb(Ea&7,ga);}else{ga=yd();Ha=xa[4];zd();Ia=xa[4];fa=Pb(Ea);xa[4]=Ha;ub(ga);xa[4]=Ia;}break Fd;case 0x168:ga=Ob();vd(ga);break Fd;case 0x16a:ga=((Ta[Kb++]<<24)>>24);;vd(ga);break Fd;case 0x1c8:Pf();break Fd;case 0x1c9:Nf();break Fd;case 0x106:case 0x10e:case 0x116:case 0x11e:vd(wa.segs[(b>>3)&3].selector);break Fd;case 0x107:case 0x117:case 0x11f:Ie((b>>3)&3,yd());zd();break Fd;case 0x18d:Ea=Ta[Kb++];;if((Ea>>6)==3)Dc(6);Da=(Da&~0x000f)|(6+1);Wb((Ea>>3)&7,Pb(Ea));break Fd;case 0x1ff:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 0:if((Ea>>6)==3){Fa=Ea&7;Wb(Fa,ec(xa[Fa]));}else{fa=Pb(Ea);ga=ob();ga=ec(ga);ub(ga);}break;case 1:if((Ea>>6)==3){Fa=Ea&7;Wb(Fa,fc(xa[Fa]));}else{fa=Pb(Ea);ga=ob();ga=fc(ga);ub(ga);}break;case 2:if((Ea>>6)==3){ga=xa[Ea&7]&0xffff;}else{fa=Pb(Ea);ga=ib();}vd((Jb+Kb-Mb));Jb=ga,Kb=Mb=0;break;case 4:if((Ea>>6)==3){ga=xa[Ea&7]&0xffff;}else{fa=Pb(Ea);ga=ib();}Jb=ga,Kb=Mb=0;break;case 6:if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}vd(ga);break;case 3:case 5:if((Ea>>6)==3)Dc(6);fa=Pb(Ea);ga=ib();fa=(fa+2)>>0;Ha=ib();if(Ja==3)Ze(0,Ha,ga,(Jb+Kb-Mb));else Oe(Ha,ga);break;default:Dc(6);}break Fd;case 0x1eb:ga=((Ta[Kb++]<<24)>>24);;Jb=(Jb+Kb-Mb+ga)&0xffff,Kb=Mb=0;break Fd;case 0x1e9:ga=Ob();Jb=(Jb+Kb-Mb+ga)&0xffff,Kb=Mb=0;break Fd;case 0x170:case 0x171:case 0x172:case 0x173:case 0x174:case 0x175:case 0x176:case 0x177:case 0x178:case 0x179:case 0x17a:case 0x17b:case 0x17c:case 0x17d:case 0x17e:case 0x17f:ga=((Ta[Kb++]<<24)>>24);;Ha=fd(b&0xf);if(Ha)Jb=(Jb+Kb-Mb+ga)&0xffff,Kb=Mb=0;break Fd;case 0x1c2:Ha=(Ob()<<16)>>16;ga=yd();xa[4]=(xa[4]&~Pa)|((xa[4]+2+Ha)&Pa);Jb=ga,Kb=Mb=0;break Fd;case 0x1c3:ga=yd();zd();Jb=ga,Kb=Mb=0;break Fd;case 0x1e8:ga=Ob();vd((Jb+Kb-Mb));Jb=(Jb+Kb-Mb+ga)&0xffff,Kb=Mb=0;break Fd;case 0x162:If();break Fd;case 0x1a5:lg();break Fd;case 0x1a7:ng();break Fd;case 0x1ad:og();break Fd;case 0x1af:pg();break Fd;case 0x1ab:mg();break Fd;case 0x16d:jg();{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x16f:kg();{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x1e5:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);ga=Ta[Kb++];;Wb(0,wa.ld16_port(ga));{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x1e7:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);ga=Ta[Kb++];;wa.st16_port(ga,xa[0]&0xffff);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x1ed:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);Wb(0,wa.ld16_port(xa[2]&0xffff));{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x1ef:Sa=(wa.eflags>>12)&3;if(wa.cpl>Sa)Dc(13);wa.st16_port(xa[2]&0xffff,xa[0]&0xffff);{if(wa.hard_irq!=0&&(wa.eflags&0x00000200))break Cg;};break Fd;case 0x166:case 0x167:case 0x1f0:case 0x1f2:case 0x1f3:case 0x126:case 0x12e:case 0x136:case 0x13e:case 0x164:case 0x165:case 0x100:case 0x108:case 0x110:case 0x118:case 0x120:case 0x128:case 0x130:case 0x138:case 0x102:case 0x10a:case 0x112:case 0x11a:case 0x122:case 0x12a:case 0x132:case 0x13a:case 0x104:case 0x10c:case 0x114:case 0x11c:case 0x124:case 0x12c:case 0x134:case 0x13c:case 0x1a0:case 0x1a2:case 0x1d8:case 0x1d9:case 0x1da:case 0x1db:case 0x1dc:case 0x1dd:case 0x1de:case 0x1df:case 0x184:case 0x1a8:case 0x1f6:case 0x1c0:case 0x1d0:case 0x1d2:case 0x1fe:case 0x1cd:case 0x1ce:case 0x1f5:case 0x1f8:case 0x1f9:case 0x1fc:case 0x1fd:case 0x1fa:case 0x1fb:case 0x19e:case 0x19f:case 0x1f4:case 0x127:case 0x12f:case 0x137:case 0x13f:case 0x1d4:case 0x1d5:case 0x16c:case 0x16e:case 0x1a4:case 0x1a6:case 0x1aa:case 0x1ac:case 0x1ae:case 0x180:case 0x182:case 0x186:case 0x188:case 0x18a:case 0x18c:case 0x18e:case 0x19b:case 0x1b0:case 0x1b1:case 0x1b2:case 0x1b3:case 0x1b4:case 0x1b5:case 0x1b6:case 0x1b7:case 0x1c6:case 0x1cc:case 0x1d7:case 0x1e4:case 0x1e6:case 0x1ec:case 0x1ee:case 0x1cf:case 0x1ca:case 0x1cb:case 0x19a:case 0x19c:case 0x19d:case 0x1ea:case 0x1e0:case 0x1e1:case 0x1e2:case 0x1e3:b&=0xff;break;case 0x163:case 0x1d6:case 0x1f1:default:Dc(6);case 0x10f:b=Ta[Kb++];;b|=0x0100;switch(b){case 0x180:case 0x181:case 0x182:case 0x183:case 0x184:case 0x185:case 0x186:case 0x187:case 0x188:case 0x189:case 0x18a:case 0x18b:case 0x18c:case 0x18d:case 0x18e:case 0x18f:ga=Ob();if(fd(b&0xf))Jb=(Jb+Kb-Mb+ga)&0xffff,Kb=Mb=0;break Fd;case 0x140:case 0x141:case 0x142:case 0x143:case 0x144:case 0x145:case 0x146:case 0x147:case 0x148:case 0x149:case 0x14a:case 0x14b:case 0x14c:case 0x14d:case 0x14e:case 0x14f:Ea=Ta[Kb++];;if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);ga=ib();}if(fd(b&0xf))Wb((Ea>>3)&7,ga);break Fd;case 0x1b6:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1))&0xff;}else{fa=Pb(Ea);ga=gb();}Wb(Ga,ga);break Fd;case 0x1be:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=(xa[Fa&3]>>((Fa&4)<<1));}else{fa=Pb(Ea);ga=gb();}Wb(Ga,(((ga)<<24)>>24));break Fd;case 0x1af:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=ib();}Wb(Ga,Rc(xa[Ga],Ha));break Fd;case 0x1c1:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=xa[Fa];Ha=dc(0,ga,xa[Ga]);Wb(Ga,ga);Wb(Fa,Ha);}else{fa=Pb(Ea);ga=ob();Ha=dc(0,ga,xa[Ga]);ub(Ha);Wb(Ga,ga);}break Fd;case 0x1a0:case 0x1a8:vd(wa.segs[(b>>3)&7].selector);break Fd;case 0x1a1:case 0x1a9:Ie((b>>3)&7,yd());zd();break Fd;case 0x1b2:case 0x1b4:case 0x1b5:Vf(b&7);break Fd;case 0x1a4:case 0x1ac:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];Ja=(b>>3)&1;if((Ea>>6)==3){Ia=Ta[Kb++];;Fa=Ea&7;Wb(Fa,oc(Ja,xa[Fa],Ha,Ia));}else{fa=Pb(Ea);Ia=Ta[Kb++];;ga=ob();ga=oc(Ja,ga,Ha,Ia);ub(ga);}break Fd;case 0x1a5:case 0x1ad:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];Ia=xa[1];Ja=(b>>3)&1;if((Ea>>6)==3){Fa=Ea&7;Wb(Fa,oc(Ja,xa[Fa],Ha,Ia));}else{fa=Pb(Ea);ga=ob();ga=oc(Ja,ga,Ha,Ia);ub(ga);}break Fd;case 0x1ba:Ea=Ta[Kb++];;Ja=(Ea>>3)&7;switch(Ja){case 4:if((Ea>>6)==3){ga=xa[Ea&7];Ha=Ta[Kb++];;}else{fa=Pb(Ea);Ha=Ta[Kb++];;ga=ib();}tc(ga,Ha);break;case 5:case 6:case 7:if((Ea>>6)==3){Fa=Ea&7;Ha=Ta[Kb++];;xa[Fa]=vc(Ja&3,xa[Fa],Ha);}else{fa=Pb(Ea);Ha=Ta[Kb++];;ga=ob();ga=vc(Ja&3,ga,Ha);ub(ga);}break;default:Dc(6);}break Fd;case 0x1a3:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];if((Ea>>6)==3){ga=xa[Ea&7];}else{fa=Pb(Ea);fa=(fa+(((Ha&0xffff)>>4)<<1))>>0;ga=ib();}tc(ga,Ha);break Fd;case 0x1ab:case 0x1b3:case 0x1bb:Ea=Ta[Kb++];;Ha=xa[(Ea>>3)&7];Ja=(b>>3)&3;if((Ea>>6)==3){Fa=Ea&7;Wb(Fa,vc(Ja,xa[Fa],Ha));}else{fa=Pb(Ea);fa=(fa+(((Ha&0xffff)>>4)<<1))>>0;ga=ob();ga=vc(Ja,ga,Ha);ub(ga);}break Fd;case 0x1bc:case 0x1bd:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Ha=xa[Ea&7];}else{fa=Pb(Ea);Ha=ib();}ga=xa[Ga];if(b&1)ga=Ac(ga,Ha);else ga=yc(ga,Ha);Wb(Ga,ga);break Fd;case 0x1b1:Ea=Ta[Kb++];;Ga=(Ea>>3)&7;if((Ea>>6)==3){Fa=Ea&7;ga=xa[Fa];Ha=dc(5,xa[0],ga);if(Ha==0){Wb(Fa,xa[Ga]);}else{Wb(0,ga);}}else{fa=Pb(Ea);ga=ob();Ha=dc(5,xa[0],ga);if(Ha==0){ub(xa[Ga]);}else{Wb(0,ga);}}break Fd;case 0x100:case 0x101:case 0x102:case 0x103:case 0x120:case 0x122:case 0x106:case 0x123:case 0x1a2:case 0x131:case 0x190:case 0x191:case 0x192:case 0x193:case 0x194:case 0x195:case 0x196:case 0x197:case 0x198:case 0x199:case 0x19a:case 0x19b:case 0x19c:case 0x19d:case 0x19e:case 0x19f:case 0x1b0:b=0x0f;Kb--;break;case 0x104:case 0x105:case 0x107:case 0x108:case 0x109:case 0x10a:case 0x10b:case 0x10c:case 0x10d:case 0x10e:case 0x10f:case 0x110:case 0x111:case 0x112:case 0x113:case 0x114:case 0x115:case 0x116:case 0x117:case 0x118:case 0x119:case 0x11a:case 0x11b:case 0x11c:case 0x11d:case 0x11e:case 0x11f:case 0x121:case 0x124:case 0x125:case 0x126:case 0x127:case 0x128:case 0x129:case 0x12a:case 0x12b:case 0x12c:case 0x12d:case 0x12e:case 0x12f:case 0x130:case 0x132:case 0x133:case 0x134:case 0x135:case 0x136:case 0x137:case 0x138:case 0x139:case 0x13a:case 0x13b:case 0x13c:case 0x13d:case 0x13e:case 0x13f:case 0x150:case 0x151:case 0x152:case 0x153:case 0x154:case 0x155:case 0x156:case 0x157:case 0x158:case 0x159:case 0x15a:case 0x15b:case 0x15c:case 0x15d:case 0x15e:case 0x15f:case 0x160:case 0x161:case 0x162:case 0x163:case 0x164:case 0x165:case 0x166:case 0x167:case 0x168:case 0x169:case 0x16a:case 0x16b:case 0x16c:case 0x16d:case 0x16e:case 0x16f:case 0x170:case 0x171:case 0x172:case 0x173:case 0x174:case 0x175:case 0x176:case 0x177:case 0x178:case 0x179:case 0x17a:case 0x17b:case 0x17c:case 0x17d:case 0x17e:case 0x17f:case 0x1a6:case 0x1a7:case 0x1aa:case 0x1ae:case 0x1b7:case 0x1b8:case 0x1b9:case 0x1bf:case 0x1c0:default:Dc(6);}break;}}}}while(--Ka);this.cycle_count+=(ua-Ka);this.eip=(Jb+Kb-Mb);this.cc_src=ya;this.cc_dst=za;this.cc_op=Aa;this.cc_op2=Ba;this.cc_dst2=Ca;return La;};CPU_X86.prototype.exec=function(ua){var Eg,La,Fg,va;Fg=this.cycle_count+ua;La=256;va=null;while(this.cycle_count<Fg){try{La=this.exec_internal(Fg-this.cycle_count,va);if(La!=256)break;va=null;}catch(Gg){if(Gg.hasOwnProperty("intno")){va=Gg;}else{throw Gg;}}}return La;};CPU_X86.prototype.load_binary=function(Hg,fa,Ig){var Jg,wa;wa=this;Jg=function(Kg,rg){var i;if(rg<0){Ig(rg);}else{if(typeof Kg=="string"){for(i=0;i<rg;i++){wa.st8_phys(fa+i,Kg.charCodeAt(i));}}else{for(i=0;i<rg;i++){wa.st8_phys(fa+i,Kg[i]);}}Ig(rg);}};load_binary(Hg,Jg);};function Lg(a){return((a/10)<<4)|(a%10);}function Mg(n){return new Uint8Array(n);}function Ng(Og){var Pg,d;Pg=Mg(128);this.cmos_data=Pg;this.cmos_index=0;d=new Date();Pg[0]=Lg(d.getUTCSeconds());Pg[2]=Lg(d.getUTCMinutes());Pg[4]=Lg(d.getUTCHours());Pg[6]=Lg(d.getUTCDay());Pg[7]=Lg(d.getUTCDate());Pg[8]=Lg(d.getUTCMonth()+1);Pg[9]=Lg(d.getUTCFullYear()%100);Pg[10]=0x26;Pg[11]=0x02;Pg[12]=0x00;Pg[13]=0x80;Pg[0x14]=0x02;Og.register_ioport_write(0x70,2,1,this.ioport_write.bind(this));Og.register_ioport_read(0x70,2,1,this.ioport_read.bind(this));}Ng.prototype.ioport_write=function(fa,Kg){if(fa==0x70){this.cmos_index=Kg&0x7f;}};Ng.prototype.ioport_read=function(fa){var Qg;if(fa==0x70){return 0xff;}else{Qg=this.cmos_data[this.cmos_index];if(this.cmos_index==10)this.cmos_data[10]^=0x80;else if(this.cmos_index==12)this.cmos_data[12]=0x00;return Qg;}};function Rg(Og,Zf){Og.register_ioport_write(Zf,2,1,this.ioport_write.bind(this));Og.register_ioport_read(Zf,2,1,this.ioport_read.bind(this));this.reset();}Rg.prototype.reset=function(){this.last_irr=0;this.irr=0;this.imr=0;this.isr=0;this.priority_add=0;this.irq_base=0;this.read_reg_select=0;this.special_mask=0;this.init_state=0;this.auto_eoi=0;this.rotate_on_autoeoi=0;this.init4=0;this.elcr=0;this.elcr_mask=0;};Rg.prototype.set_irq1=function(Sg,Qf){var wc;wc=1<<Sg;if(Qf){if((this.last_irr&wc)==0)this.irr|=wc;this.last_irr|=wc;}else{this.last_irr&=~wc;}};Rg.prototype.get_priority=function(wc){var Tg;if(wc==0)return-1;Tg=7;while((wc&(1<<((Tg+this.priority_add)&7)))==0)Tg--;return Tg;};Rg.prototype.get_irq=function(){var wc,Ug,Tg;wc=this.irr&~this.imr;Tg=this.get_priority(wc);if(Tg<0)return-1;Ug=this.get_priority(this.isr);if(Tg>Ug){return Tg;}else{return-1;}};Rg.prototype.intack=function(Sg){if(this.auto_eoi){if(this.rotate_on_auto_eoi)this.priority_add=(Sg+1)&7;}else{this.isr|=(1<<Sg);}if(!(this.elcr&(1<<Sg)))this.irr&=~(1<<Sg);};Rg.prototype.ioport_write=function(fa,ga){var Tg;fa&=1;if(fa==0){if(ga&0x10){this.reset();this.init_state=1;this.init4=ga&1;if(ga&0x02)throw"single mode not supported";if(ga&0x08)throw"level sensitive irq not supported";}else if(ga&0x08){if(ga&0x02)this.read_reg_select=ga&1;if(ga&0x40)this.special_mask=(ga>>5)&1;}else{switch(ga){case 0x00:case 0x80:this.rotate_on_autoeoi=ga>>7;break;case 0x20:case 0xa0:Tg=this.get_priority(this.isr);if(Tg>=0){this.isr&=~(1<<((Tg+this.priority_add)&7));}if(ga==0xa0)this.priority_add=(this.priority_add+1)&7;break;case 0x60:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66:case 0x67:Tg=ga&7;this.isr&=~(1<<Tg);break;case 0xc0:case 0xc1:case 0xc2:case 0xc3:case 0xc4:case 0xc5:case 0xc6:case 0xc7:this.priority_add=(ga+1)&7;break;case 0xe0:case 0xe1:case 0xe2:case 0xe3:case 0xe4:case 0xe5:case 0xe6:case 0xe7:Tg=ga&7;this.isr&=~(1<<Tg);this.priority_add=(Tg+1)&7;break;}}}else{switch(this.init_state){case 0:this.imr=ga;this.update_irq();break;case 1:this.irq_base=ga&0xf8;this.init_state=2;break;case 2:if(this.init4){this.init_state=3;}else{this.init_state=0;}break;case 3:this.auto_eoi=(ga>>1)&1;this.init_state=0;break;}}};Rg.prototype.ioport_read=function(Vg){var fa,Qg;fa=Vg&1;if(fa==0){if(this.read_reg_select)Qg=this.isr;else Qg=this.irr;}else{Qg=this.imr;}return Qg;};function Wg(Og,Xg,Vg,Yg){this.pics=new Array();this.pics[0]=new Rg(Og,Xg);this.pics[1]=new Rg(Og,Vg);this.pics[0].elcr_mask=0xf8;this.pics[1].elcr_mask=0xde;this.irq_requested=0;this.cpu_set_irq=Yg;this.pics[0].update_irq=this.update_irq.bind(this);this.pics[1].update_irq=this.update_irq.bind(this);}Wg.prototype.update_irq=function(){var Zg,Sg;Zg=this.pics[1].get_irq();if(Zg>=0){this.pics[0].set_irq1(2,1);this.pics[0].set_irq1(2,0);}Sg=this.pics[0].get_irq();if(Sg>=0){this.cpu_set_irq(1);}else{this.cpu_set_irq(0);}};Wg.prototype.set_irq=function(Sg,Qf){this.pics[Sg>>3].set_irq1(Sg&7,Qf);this.update_irq();};Wg.prototype.get_hard_intno=function(){var Sg,Zg,intno;Sg=this.pics[0].get_irq();if(Sg>=0){this.pics[0].intack(Sg);if(Sg==2){Zg=this.pics[1].get_irq();if(Zg>=0){this.pics[1].intack(Zg);}else{Zg=7;}intno=this.pics[1].irq_base+Zg;Sg=Zg+8;}else{intno=this.pics[0].irq_base+Sg;}}else{Sg=7;intno=this.pics[0].irq_base+Sg;}this.update_irq();return intno;};function ah(Og,bh,ch){var s,i;this.pit_channels=new Array();for(i=0;i<3;i++){s=new dh(ch);this.pit_channels[i]=s;s.mode=3;s.gate=(i!=2)>>0;s.pit_load_count(0);}this.speaker_data_on=0;this.set_irq=bh;Og.register_ioport_write(0x40,4,1,this.ioport_write.bind(this));Og.register_ioport_read(0x40,3,1,this.ioport_read.bind(this));Og.register_ioport_read(0x61,1,1,this.speaker_ioport_read.bind(this));Og.register_ioport_write(0x61,1,1,this.speaker_ioport_write.bind(this));}function dh(ch){this.count=0;this.latched_count=0;this.rw_state=0;this.mode=0;this.bcd=0;this.gate=0;this.count_load_time=0;this.get_ticks=ch;this.pit_time_unit=1193182/2000000;}dh.prototype.get_time=function(){return Math.floor(this.get_ticks()*this.pit_time_unit);};dh.prototype.pit_get_count=function(){var d,eh;d=this.get_time()-this.count_load_time;switch(this.mode){case 0:case 1:case 4:case 5:eh=(this.count-d)&0xffff;break;default:eh=this.count-(d%this.count);break;}return eh;};dh.prototype.pit_get_out=function(){var d,fh;d=this.get_time()-this.count_load_time;switch(this.mode){default:case 0:fh=(d>=this.count)>>0;break;case 1:fh=(d<this.count)>>0;break;case 2:if((d%this.count)==0&&d!=0)fh=1;else fh=0;break;case 3:fh=((d%this.count)<(this.count>>1))>>0;break;case 4:case 5:fh=(d==this.count)>>0;break;}return fh;};dh.prototype.get_next_transition_time=function(){var d,gh,base,hh;d=this.get_time()-this.count_load_time;switch(this.mode){default:case 0:case 1:if(d<this.count)gh=this.count;else return-1;break;case 2:base=(d/this.count)*this.count;if((d-base)==0&&d!=0)gh=base+this.count;else gh=base+this.count+1;break;case 3:base=(d/this.count)*this.count;hh=((this.count+1)>>1);if((d-base)<hh)gh=base+hh;else gh=base+this.count;break;case 4:case 5:if(d<this.count)gh=this.count;else if(d==this.count)gh=this.count+1;else return-1;break;}gh=this.count_load_time+gh;return gh;};dh.prototype.pit_load_count=function(ga){if(ga==0)ga=0x10000;this.count_load_time=this.get_time();this.count=ga;};ah.prototype.ioport_write=function(fa,ga){var ih,jh,s;fa&=3;if(fa==3){ih=ga>>6;if(ih==3)return;s=this.pit_channels[ih];jh=(ga>>4)&3;switch(jh){case 0:s.latched_count=s.pit_get_count();s.rw_state=4;break;default:s.mode=(ga>>1)&7;s.bcd=ga&1;s.rw_state=jh-1+0;break;}}else{s=this.pit_channels[fa];switch(s.rw_state){case 0:s.pit_load_count(ga);break;case 1:s.pit_load_count(ga<<8);break;case 2:case 3:if(s.rw_state&1){s.pit_load_count((s.latched_count&0xff)|(ga<<8));}else{s.latched_count=ga;}s.rw_state^=1;break;}}};ah.prototype.ioport_read=function(fa){var Qg,ma,s;fa&=3;s=this.pit_channels[fa];switch(s.rw_state){case 0:case 1:case 2:case 3:ma=s.pit_get_count();if(s.rw_state&1)Qg=(ma>>8)&0xff;else Qg=ma&0xff;if(s.rw_state&2)s.rw_state^=1;break;default:case 4:case 5:if(s.rw_state&1)Qg=s.latched_count>>8;else Qg=s.latched_count&0xff;s.rw_state^=1;break;}return Qg;};ah.prototype.speaker_ioport_write=function(fa,ga){this.speaker_data_on=(ga>>1)&1;this.pit_channels[2].gate=ga&1;};ah.prototype.speaker_ioport_read=function(fa){var fh,s,ga;s=this.pit_channels[2];fh=s.pit_get_out();ga=(this.speaker_data_on<<1)|s.gate|(fh<<5);return ga;};ah.prototype.update_irq=function(){this.set_irq(1);this.set_irq(0);};function kh(Og,fa,lh,mh){this.divider=0;this.rbr=0;this.ier=0;this.iir=0x01;this.lcr=0;this.mcr;this.lsr=0x40|0x20;this.msr=0;this.scr=0;this.fcr=0;this.set_irq_func=lh;this.write_func=mh;this.tx_fifo="";this.rx_fifo="";Og.register_ioport_write(0x3f8,8,1,this.ioport_write.bind(this));Og.register_ioport_read(0x3f8,8,1,this.ioport_read.bind(this));}kh.prototype.update_irq=function(){if((this.lsr&0x01)&&(this.ier&0x01)){this.iir=0x04;}else if((this.lsr&0x20)&&(this.ier&0x02)){this.iir=0x02;}else{this.iir=0x01;}if(this.iir!=0x01){this.set_irq_func(1);}else{this.set_irq_func(0);}};kh.prototype.write_tx_fifo=function(){if(this.tx_fifo!=""){this.write_func(this.tx_fifo);this.tx_fifo="";this.lsr|=0x20;this.lsr|=0x40;this.update_irq();}};kh.prototype.ioport_write=function(fa,ga){fa&=7;switch(fa){default:case 0:if(this.lcr&0x80){this.divider=(this.divider&0xff00)|ga;}else{if(this.fcr&0x01){this.tx_fifo+=String.fromCharCode(ga);this.lsr&=~0x20;this.update_irq();if(this.tx_fifo.length>=16){this.write_tx_fifo();}}else{this.lsr&=~0x20;this.update_irq();this.write_func(String.fromCharCode(ga));this.lsr|=0x20;this.lsr|=0x40;this.update_irq();}}break;case 1:if(this.lcr&0x80){this.divider=(this.divider&0x00ff)|(ga<<8);}else{this.ier=ga;this.update_irq();}break;case 2:if((this.fcr^ga)&0x01){ga|=0x04|0x02;}if(ga&0x04)this.tx_fifo="";if(ga&0x02)this.rx_fifo="";this.fcr=ga&0x01;break;case 3:this.lcr=ga;break;case 4:this.mcr=ga;break;case 5:break;case 6:this.msr=ga;break;case 7:this.scr=ga;break;}};kh.prototype.ioport_read=function(fa){var Qg;fa&=7;switch(fa){default:case 0:if(this.lcr&0x80){Qg=this.divider&0xff;}else{Qg=this.rbr;this.lsr&=~(0x01|0x10);this.update_irq();this.send_char_from_fifo();}break;case 1:if(this.lcr&0x80){Qg=(this.divider>>8)&0xff;}else{Qg=this.ier;}break;case 2:Qg=this.iir;if(this.fcr&0x01)Qg|=0xC0;break;case 3:Qg=this.lcr;break;case 4:Qg=this.mcr;break;case 5:Qg=this.lsr;break;case 6:Qg=this.msr;break;case 7:Qg=this.scr;break;}return Qg;};kh.prototype.send_break=function(){this.rbr=0;this.lsr|=0x10|0x01;this.update_irq();};kh.prototype.send_char=function(nh){this.rbr=nh;this.lsr|=0x01;this.update_irq();};kh.prototype.send_char_from_fifo=function(){var oh;oh=this.rx_fifo;if(oh!=""&&!(this.lsr&0x01)){this.send_char(oh.charCodeAt(0));this.rx_fifo=oh.substr(1,oh.length-1);}};kh.prototype.send_chars=function(na){this.rx_fifo+=na;this.send_char_from_fifo();};function ph(Og,qh){Og.register_ioport_read(0x64,1,1,this.read_status.bind(this));Og.register_ioport_write(0x64,1,1,this.write_command.bind(this));this.reset_request=qh;}ph.prototype.read_status=function(fa){return 0;};ph.prototype.write_command=function(fa,ga){switch(ga){case 0xfe:this.reset_request();break;default:break;}};function rh(Og,Zf,sh,mh,th){Og.register_ioport_read(Zf,16,4,this.ioport_readl.bind(this));Og.register_ioport_write(Zf,16,4,this.ioport_writel.bind(this));Og.register_ioport_read(Zf+8,1,1,this.ioport_readb.bind(this));Og.register_ioport_write(Zf+8,1,1,this.ioport_writeb.bind(this));this.cur_pos=0;this.doc_str="";this.read_func=sh;this.write_func=mh;this.get_boot_time=th;}rh.prototype.ioport_writeb=function(fa,ga){this.doc_str+=String.fromCharCode(ga);};rh.prototype.ioport_readb=function(fa){var c,na,ga;na=this.doc_str;if(this.cur_pos<na.length){ga=na.charCodeAt(this.cur_pos)&0xff;}else{ga=0;}this.cur_pos++;return ga;};rh.prototype.ioport_writel=function(fa,ga){var na;fa=(fa>>2)&3;switch(fa){case 0:this.doc_str=this.doc_str.substr(0,ga>>>0);break;case 1:return this.cur_pos=ga>>>0;case 2:na=String.fromCharCode(ga&0xff)+String.fromCharCode((ga>>8)&0xff)+String.fromCharCode((ga>>16)&0xff)+String.fromCharCode((ga>>24)&0xff);this.doc_str+=na;break;case 3:this.write_func(this.doc_str);}};rh.prototype.ioport_readl=function(fa){var ga;fa=(fa>>2)&3;switch(fa){case 0:this.doc_str=this.read_func();return this.doc_str.length>>0;case 1:return this.cur_pos>>0;case 2:ga=this.ioport_readb(0);ga|=this.ioport_readb(0)<<8;ga|=this.ioport_readb(0)<<16;ga|=this.ioport_readb(0)<<24;return ga;case 3:if(this.get_boot_time)return this.get_boot_time()>>0;else return 0;}};uh.prototype.identify=function(){function vh(wh,v){xh[wh*2]=v&0xff;xh[wh*2+1]=(v>>8)&0xff;}function yh(wh,na,rg){var i,v;for(i=0;i<rg;i++){if(i<na.length){v=na.charCodeAt(i)&0xff;}else{v=32;}xh[wh*2+(i^1)]=v;}}var xh,i,zh;xh=this.io_buffer;for(i=0;i<512;i++)xh[i]=0;vh(0,0x0040);vh(1,this.cylinders);vh(3,this.heads);vh(4,512*this.sectors);vh(5,512);vh(6,this.sectors);vh(20,3);vh(21,512);vh(22,4);yh(27,"JSLinux HARDDISK",40);vh(47,0x8000|128);vh(48,0);vh(49,1<<9);vh(51,0x200);vh(52,0x200);vh(54,this.cylinders);vh(55,this.heads);vh(56,this.sectors);zh=this.cylinders*this.heads*this.sectors;vh(57,zh);vh(58,zh>>16);if(this.mult_sectors)vh(59,0x100|this.mult_sectors);vh(60,this.nb_sectors);vh(61,this.nb_sectors>>16);vh(80,(1<<1)|(1<<2));vh(82,(1<<14));vh(83,(1<<14));vh(84,(1<<14));vh(85,(1<<14));vh(86,0);vh(87,(1<<14));};uh.prototype.set_signature=function(){this.select&=0xf0;this.nsector=1;this.sector=1;this.lcyl=0;this.hcyl=0;};uh.prototype.abort_command=function(){this.status=0x40|0x01;this.error=0x04;};uh.prototype.set_irq=function(){if(!(this.cmd&0x02)){this.ide_if.set_irq_func(1);}};uh.prototype.transfer_start=function(cc,Ah){this.end_transfer_func=Ah;this.data_index=0;this.data_end=cc;};uh.prototype.transfer_stop=function(){this.end_transfer_func=this.transfer_stop.bind(this);this.data_index=0;this.data_end=0;};uh.prototype.get_sector=function(){var Bh;if(this.select&0x40){Bh=((this.select&0x0f)<<24)|(this.hcyl<<16)|(this.lcyl<<8)|this.sector;}else{Bh=((this.hcyl<<8)|this.lcyl)*this.heads*this.sectors+(this.select&0x0f)*this.sectors+(this.sector-1);}return Bh;};uh.prototype.set_sector=function(Bh){var Ch,r;if(this.select&0x40){this.select=(this.select&0xf0)|((Bh>>24)&0x0f);this.hcyl=(Bh>>16)&0xff;this.lcyl=(Bh>>8)&0xff;this.sector=Bh&0xff;}else{Ch=Bh/(this.heads*this.sectors);r=Bh%(this.heads*this.sectors);this.hcyl=(Ch>>8)&0xff;this.lcyl=Ch&0xff;this.select=(this.select&0xf0)|((r/this.sectors)&0x0f);this.sector=(r%this.sectors)+1;}};uh.prototype.sector_read=function(){var Bh,n,Qg;Bh=this.get_sector();n=this.nsector;if(n==0)n=256;if(n>this.req_nb_sectors)n=this.req_nb_sectors;this.io_nb_sectors=n;Qg=this.bs.read_async(Bh,this.io_buffer,n,this.sector_read_cb.bind(this));if(Qg<0){this.abort_command();this.set_irq();}else if(Qg==0){this.sector_read_cb();}else{this.status=0x40|0x10|0x80;this.error=0;}};uh.prototype.sector_read_cb=function(){var n,Dh;n=this.io_nb_sectors;this.set_sector(this.get_sector()+n);this.nsector=(this.nsector-n)&0xff;if(this.nsector==0)Dh=this.sector_read_cb_end.bind(this);else Dh=this.sector_read.bind(this);this.transfer_start(512*n,Dh);this.set_irq();this.status=0x40|0x10|0x08;this.error=0;};uh.prototype.sector_read_cb_end=function(){this.status=0x40|0x10;this.error=0;this.transfer_stop();};uh.prototype.sector_write_cb1=function(){var Bh,Qg;this.transfer_stop();Bh=this.get_sector();Qg=this.bs.write_async(Bh,this.io_buffer,this.io_nb_sectors,this.sector_write_cb2.bind(this));if(Qg<0){this.abort_command();this.set_irq();}else if(Qg==0){this.sector_write_cb2();}else{this.status=0x40|0x10|0x80;}};uh.prototype.sector_write_cb2=function(){var n;n=this.io_nb_sectors;this.set_sector(this.get_sector()+n);this.nsector=(this.nsector-n)&0xff;if(this.nsector==0){this.status=0x40|0x10;}else{n=this.nsector;if(n>this.req_nb_sectors)n=this.req_nb_sectors;this.io_nb_sectors=n;this.transfer_start(512*n,this.sector_write_cb1.bind(this));this.status=0x40|0x10|0x08;}this.set_irq();};uh.prototype.sector_write=function(){var n;n=this.nsector;if(n==0)n=256;if(n>this.req_nb_sectors)n=this.req_nb_sectors;this.io_nb_sectors=n;this.transfer_start(512*n,this.sector_write_cb1.bind(this));this.status=0x40|0x10|0x08;};uh.prototype.identify_cb=function(){this.transfer_stop();this.status=0x40;};uh.prototype.exec_cmd=function(ga){var n;switch(ga){case 0xA1:case 0xEC:this.identify();this.status=0x40|0x10|0x08;this.transfer_start(512,this.identify_cb.bind(this));this.set_irq();break;case 0x91:case 0x10:this.error=0;this.status=0x40|0x10;this.set_irq();break;case 0xC6:if(this.nsector>128||(this.nsector&(this.nsector-1))!=0){this.abort_command();}else{this.mult_sectors=this.nsector;this.status=0x40;}this.set_irq();break;case 0x20:case 0x21:this.req_nb_sectors=1;this.sector_read();break;case 0x30:case 0x31:this.req_nb_sectors=1;this.sector_write();break;case 0xC4:if(!this.mult_sectors){this.abort_command();this.set_irq();}else{this.req_nb_sectors=this.mult_sectors;this.sector_read();}break;case 0xC5:if(!this.mult_sectors){this.abort_command();this.set_irq();}else{this.req_nb_sectors=this.mult_sectors;this.sector_write();}break;case 0xF8:this.set_sector(this.nb_sectors-1);this.status=0x40;this.set_irq();break;default:this.abort_command();this.set_irq();break;}};Eh.prototype.ioport_write=function(fa,ga){var s=this.cur_drive;var Fh;fa&=7;switch(fa){case 0:break;case 1:if(s){s.feature=ga;}break;case 2:if(s){s.nsector=ga;}break;case 3:if(s){s.sector=ga;}break;case 4:if(s){s.lcyl=ga;}break;case 5:if(s){s.hcyl=ga;}break;case 6:s=this.cur_drive=this.drives[(ga>>4)&1];if(s){s.select=ga;}break;default:case 7:if(s){s.exec_cmd(ga);}break;}};Eh.prototype.ioport_read=function(fa){var s=this.cur_drive;var Qg;fa&=7;if(!s){Qg=0xff;}else{switch(fa){case 0:Qg=0xff;break;case 1:Qg=s.error;break;case 2:Qg=s.nsector;break;case 3:Qg=s.sector;break;case 4:Qg=s.lcyl;break;case 5:Qg=s.hcyl;break;case 6:Qg=s.select;break;default:case 7:Qg=s.status;this.set_irq_func(0);break;}}return Qg;};Eh.prototype.status_read=function(fa){var s=this.cur_drive;var Qg;if(s){Qg=s.status;}else{Qg=0;}return Qg;};Eh.prototype.cmd_write=function(fa,ga){var i,s;if(!(this.cmd&0x04)&&(ga&0x04)){for(i=0;i<2;i++){s=this.drives[i];if(s){s.status=0x80|0x10;s.error=0x01;}}}else if((this.cmd&0x04)&&!(ga&0x04)){for(i=0;i<2;i++){s=this.drives[i];if(s){s.status=0x40|0x10;s.set_signature();}}}for(i=0;i<2;i++){s=this.drives[i];if(s){s.cmd=ga;}}};Eh.prototype.data_writew=function(fa,ga){var s=this.cur_drive;var p,xh;if(!s)return;p=s.data_index;xh=s.io_buffer;xh[p]=ga&0xff;xh[p+1]=(ga>>8)&0xff;p+=2;s.data_index=p;if(p>=s.data_end)s.end_transfer_func();};Eh.prototype.data_readw=function(fa){var s=this.cur_drive;var p,Qg,xh;if(!s){Qg=0;}else{p=s.data_index;xh=s.io_buffer;Qg=xh[p]|(xh[p+1]<<8);p+=2;s.data_index=p;if(p>=s.data_end)s.end_transfer_func();}return Qg;};Eh.prototype.data_writel=function(fa,ga){var s=this.cur_drive;var p,xh;if(!s)return;p=s.data_index;xh=s.io_buffer;xh[p]=ga&0xff;xh[p+1]=(ga>>8)&0xff;xh[p+2]=(ga>>16)&0xff;xh[p+3]=(ga>>24)&0xff;p+=4;s.data_index=p;if(p>=s.data_end)s.end_transfer_func();};Eh.prototype.data_readl=function(fa){var s=this.cur_drive;var p,Qg,xh;if(!s){Qg=0;}else{p=s.data_index;xh=s.io_buffer;Qg=xh[p]|(xh[p+1]<<8)|(xh[p+2]<<16)|(xh[p+3]<<24);p+=4;s.data_index=p;if(p>=s.data_end)s.end_transfer_func();}return Qg;};function uh(Gh,Hh){var Ih,Jh;this.ide_if=Gh;this.bs=Hh;Jh=Hh.get_sector_count();Ih=Jh/(16*63);if(Ih>16383)Ih=16383;else if(Ih<2)Ih=2;this.cylinders=Ih;this.heads=16;this.sectors=63;this.nb_sectors=Jh;this.mult_sectors=128;this.feature=0;this.error=0;this.nsector=0;this.sector=0;this.lcyl=0;this.hcyl=0;this.select=0xa0;this.status=0x40|0x10;this.cmd=0;this.io_buffer=Mg(128*512+4);this.data_index=0;this.data_end=0;this.end_transfer_func=this.transfer_stop.bind(this);this.req_nb_sectors=0;this.io_nb_sectors=0;}function Eh(Og,fa,Kh,lh,Lh){var i,Mh;this.set_irq_func=lh;this.drives=[];for(i=0;i<2;i++){if(Lh[i]){Mh=new uh(this,Lh[i]);}else{Mh=null;}this.drives[i]=Mh;}this.cur_drive=this.drives[0];Og.register_ioport_write(fa,8,1,this.ioport_write.bind(this));Og.register_ioport_read(fa,8,1,this.ioport_read.bind(this));if(Kh){Og.register_ioport_read(Kh,1,1,this.status_read.bind(this));Og.register_ioport_write(Kh,1,1,this.cmd_write.bind(this));}Og.register_ioport_write(fa,2,2,this.data_writew.bind(this));Og.register_ioport_read(fa,2,2,this.data_readw.bind(this));Og.register_ioport_write(fa,4,4,this.data_writel.bind(this));Og.register_ioport_read(fa,4,4,this.data_readl.bind(this));}function Nh(Hg,Oh,Ph){if(Hg.indexOf("%d")<0)throw"Invalid URL";if(Ph<=0||Oh<=0)throw"Invalid parameters";this.block_sectors=Oh*2;this.nb_sectors=this.block_sectors*Ph;this.url=Hg;this.max_cache_size=Math.max(1,Math.ceil(2536/Oh));this.cache=new Array();this.sector_num=0;this.sector_index=0;this.sector_count=0;this.sector_buf=null;this.sector_cb=null;}Nh.prototype.get_sector_count=function(){return this.nb_sectors;};Nh.prototype.get_time=function(){return+new Date();};Nh.prototype.get_cached_block=function(Qh){var Rh,i,Sh=this.cache;for(i=0;i<Sh.length;i++){Rh=Sh[i];if(Rh.block_num==Qh)return Rh;}return null;};Nh.prototype.new_cached_block=function(Qh){var Rh,Th,i,j,Uh,Sh=this.cache;Rh=new Object();Rh.block_num=Qh;Rh.time=this.get_time();if(Sh.length<this.max_cache_size){j=Sh.length;}else{for(i=0;i<Sh.length;i++){Th=Sh[i];if(i==0||Th.time<Uh){Uh=Th.time;j=i;}}}Sh[j]=Rh;return Rh;};Nh.prototype.get_url=function(Hg,Qh){var p,s;s=Qh.toString();while(s.length<9)s="0"+s;p=Hg.indexOf("%d");return Hg.substr(0,p)+s+Hg.substring(p+2,Hg.length);};Nh.prototype.read_async_cb=function(Vh){var Qh,l,ve,Rh,i,Wh,Xh,Yh,Zh;var ai,Hg;while(this.sector_index<this.sector_count){Qh=Math.floor(this.sector_num/this.block_sectors);Rh=this.get_cached_block(Qh);if(Rh){ve=this.sector_num-Qh*this.block_sectors;l=Math.min(this.sector_count-this.sector_index,this.block_sectors-ve);Wh=l*512;Xh=this.sector_buf;Yh=this.sector_index*512;Zh=Rh.buf;ai=ve*512;for(i=0;i<Wh;i++){Xh[i+Yh]=Zh[i+ai];}this.sector_index+=l;this.sector_num+=l;}else{Hg=this.get_url(this.url,Qh);load_binary(Hg,this.read_async_cb2.bind(this));return;}}this.sector_buf=null;if(!Vh){this.sector_cb(0);}};Nh.prototype.add_block=function(Qh,Kg,rg){var Rh,bi,i;Rh=this.new_cached_block(Qh);bi=Rh.buf=Mg(this.block_sectors*512);if(typeof Kg=="string"){for(i=0;i<rg;i++)bi[i]=Kg.charCodeAt(i)&0xff;}else{for(i=0;i<rg;i++)bi[i]=Kg[i];}};Nh.prototype.read_async_cb2=function(Kg,rg){var Qh;if(rg<0||rg!=(this.block_sectors*512)){this.sector_cb(-1);}else{Qh=Math.floor(this.sector_num/this.block_sectors);this.add_block(Qh,Kg,rg);this.read_async_cb(false);}};Nh.prototype.read_async=function(Bh,bi,n,ci){if((Bh+n)>this.nb_sectors)return-1;this.sector_num=Bh;this.sector_buf=bi;this.sector_index=0;this.sector_count=n;this.sector_cb=ci;this.read_async_cb(true);if(this.sector_index>=this.sector_count){return 0;}else{return 1;}};Nh.prototype.preload=function(xh,Ig){var i,Hg,Qh;if(xh.length==0){setTimeout(Ig,0);}else{this.preload_cb2=Ig;this.preload_count=xh.length;for(i=0;i<xh.length;i++){Qh=xh[i];Hg=this.get_url(this.url,Qh);load_binary(Hg,this.preload_cb.bind(this,Qh));}}};Nh.prototype.preload_cb=function(Qh,Kg,rg){if(rg<0){}else{this.add_block(Qh,Kg,rg);this.preload_count--;if(this.preload_count==0){this.preload_cb2(0);}}};Nh.prototype.write_async=function(Bh,bi,n,ci){return-1;};function Yg(Qf){this.hard_irq=Qf;}function di(){return this.cycle_count;}function PCEmulator(ei){var wa,fi,gi,i,p;wa=new CPU_X86();this.cpu=wa;wa.phys_mem_resize(ei.mem_size);this.init_ioports();this.register_ioport_write(0x80,1,1,this.ioport80_write);this.pic=new Wg(this,0x20,0xa0,Yg.bind(wa));this.pit=new ah(this,this.pic.set_irq.bind(this.pic,0),di.bind(wa));this.cmos=new Ng(this);this.serial=new kh(this,0x3f8,this.pic.set_irq.bind(this.pic,4),ei.serial_write);this.kbd=new ph(this,this.reset.bind(this));this.reset_request=0;gi=["hda","hdb"];fi=new Array();for(i=0;i<gi.length;i++){p=ei[gi[i]];fi[i]=null;if(p){fi[i]=new Nh(p.url,p.block_size,p.nb_blocks);}}this.ide0=new Eh(this,0x1f0,0x3f6,this.pic.set_irq.bind(this.pic,14),fi);if(ei.clipboard_get&&ei.clipboard_set){this.jsclipboard=new rh(this,0x3c0,ei.clipboard_get,ei.clipboard_set,ei.get_boot_time);}wa.ld8_port=this.ld8_port.bind(this);wa.ld16_port=this.ld16_port.bind(this);wa.ld32_port=this.ld32_port.bind(this);wa.st8_port=this.st8_port.bind(this);wa.st16_port=this.st16_port.bind(this);wa.st32_port=this.st32_port.bind(this);wa.get_hard_intno=this.pic.get_hard_intno.bind(this.pic);}PCEmulator.prototype.load_binary=function(Hg,ha,Ig){return this.cpu.load_binary(Hg,ha,Ig);};PCEmulator.prototype.start=function(){setTimeout(this.timer_func.bind(this),10);};PCEmulator.prototype.timer_func=function(){var La,hi,ii,ji,ki,Og,wa;Og=this;wa=Og.cpu;ii=wa.cycle_count+100000;ji=false;ki=false;li:while(wa.cycle_count<ii){Og.serial.write_tx_fifo();Og.pit.update_irq();La=wa.exec(ii-wa.cycle_count);if(La==256){if(Og.reset_request){ji=true;break;}}else if(La==257){ki=true;break;}else{ji=true;break;}}if(!ji){if(ki){setTimeout(this.timer_func.bind(this),10);}else{setTimeout(this.timer_func.bind(this),0);}}};PCEmulator.prototype.init_ioports=function(){var i,mi,ni;this.ioport_readb_table=new Array();this.ioport_writeb_table=new Array();this.ioport_readw_table=new Array();this.ioport_writew_table=new Array();this.ioport_readl_table=new Array();this.ioport_writel_table=new Array();mi=this.default_ioport_readw.bind(this);ni=this.default_ioport_writew.bind(this);for(i=0;i<1024;i++){this.ioport_readb_table[i]=this.default_ioport_readb;this.ioport_writeb_table[i]=this.default_ioport_writeb;this.ioport_readw_table[i]=mi;this.ioport_writew_table[i]=ni;this.ioport_readl_table[i]=this.default_ioport_readl;this.ioport_writel_table[i]=this.default_ioport_writel;}};PCEmulator.prototype.default_ioport_readb=function(Zf){var ga;ga=0xff;return ga;};PCEmulator.prototype.default_ioport_readw=function(Zf){var ga;ga=this.ioport_readb_table[Zf](Zf);Zf=(Zf+1)&(1024-1);ga|=this.ioport_readb_table[Zf](Zf)<<8;return ga;};PCEmulator.prototype.default_ioport_readl=function(Zf){var ga;ga=-1;return ga;};PCEmulator.prototype.default_ioport_writeb=function(Zf,ga){};PCEmulator.prototype.default_ioport_writew=function(Zf,ga){this.ioport_writeb_table[Zf](Zf,ga&0xff);Zf=(Zf+1)&(1024-1);this.ioport_writeb_table[Zf](Zf,(ga>>8)&0xff);};PCEmulator.prototype.default_ioport_writel=function(Zf,ga){};PCEmulator.prototype.ld8_port=function(Zf){var ga;ga=this.ioport_readb_table[Zf&(1024-1)](Zf);return ga;};PCEmulator.prototype.ld16_port=function(Zf){var ga;ga=this.ioport_readw_table[Zf&(1024-1)](Zf);return ga;};PCEmulator.prototype.ld32_port=function(Zf){var ga;ga=this.ioport_readl_table[Zf&(1024-1)](Zf);return ga;};PCEmulator.prototype.st8_port=function(Zf,ga){this.ioport_writeb_table[Zf&(1024-1)](Zf,ga);};PCEmulator.prototype.st16_port=function(Zf,ga){this.ioport_writew_table[Zf&(1024-1)](Zf,ga);};PCEmulator.prototype.st32_port=function(Zf,ga){this.ioport_writel_table[Zf&(1024-1)](Zf,ga);};PCEmulator.prototype.register_ioport_read=function(start,rg,cc,Dh){var i;switch(cc){case 1:for(i=start;i<start+rg;i++){this.ioport_readb_table[i]=Dh;}break;case 2:for(i=start;i<start+rg;i+=2){this.ioport_readw_table[i]=Dh;}break;case 4:for(i=start;i<start+rg;i+=4){this.ioport_readl_table[i]=Dh;}break;}};PCEmulator.prototype.register_ioport_write=function(start,rg,cc,Dh){var i;switch(cc){case 1:for(i=start;i<start+rg;i++){this.ioport_writeb_table[i]=Dh;}break;case 2:for(i=start;i<start+rg;i+=2){this.ioport_writew_table[i]=Dh;}break;case 4:for(i=start;i<start+rg;i+=4){this.ioport_writel_table[i]=Dh;}break;}};PCEmulator.prototype.ioport80_write=function(fa,Kg){};PCEmulator.prototype.reset=function(){this.request_request=1;};
JavaScript
1
https://gitee.com/xioxin/jslinux.git
git@gitee.com:xioxin/jslinux.git
xioxin
jslinux
jslinux
master

搜索帮助