Merge branch 'next-release'

This commit is contained in:
Jeff Parsons 2017-01-30 15:58:19 -08:00
commit 1f5d94e1be
16 changed files with 895 additions and 520 deletions

View file

@ -26,6 +26,7 @@
</video> </video>
<chipset id="chipset" model="VT100"/> <chipset id="chipset" model="VT100"/>
<keyboard id="keyboard" model="VT100"> <keyboard id="keyboard" model="VT100">
<control type="button" binding="caps-lock" padLeft="8px" padBottom="8px">CAPS LOCK</control>
<control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control> <control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control>
<control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control> <control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control>
<control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control> <control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control>

View file

@ -26,6 +26,7 @@
</video> </video>
<chipset id="chipset" model="VT100"/> <chipset id="chipset" model="VT100"/>
<keyboard id="keyboard" model="VT100"> <keyboard id="keyboard" model="VT100">
<control type="button" binding="caps-lock" padLeft="8px" padBottom="8px">CAPS LOCK</control>
<control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control> <control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control>
<control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control> <control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control>
<control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control> <control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control>

View file

@ -26,6 +26,7 @@
</video> </video>
<chipset id="chipset" model="VT100"/> <chipset id="chipset" model="VT100"/>
<keyboard id="keyboard" model="VT100"> <keyboard id="keyboard" model="VT100">
<control type="button" binding="caps-lock" padLeft="8px" padBottom="8px">CAPS LOCK</control>
<control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control> <control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control>
<control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control> <control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control>
<control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control> <control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control>

View file

@ -28,6 +28,7 @@
<control type="button" binding="reset" padLeft="8px" padBottom="8px">RESET</control> <control type="button" binding="reset" padLeft="8px" padBottom="8px">RESET</control>
</cpu> </cpu>
<keyboard id="keyboard" model="VT100"> <keyboard id="keyboard" model="VT100">
<control type="button" binding="caps-lock" padLeft="8px" padBottom="8px">CAPS LOCK</control>
<control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control> <control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control>
<control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control> <control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control>
<control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control> <control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control>

View file

@ -28,6 +28,7 @@
<control type="button" binding="reset">RESET</control> <control type="button" binding="reset">RESET</control>
</cpu> </cpu>
<keyboard id="keyboard" model="VT100"> <keyboard id="keyboard" model="VT100">
<control type="button" binding="caps-lock" padLeft="8px" padBottom="8px">CAPS LOCK</control>
<control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control> <control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control>
<control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control> <control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control>
<control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control> <control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control>

View file

@ -28,6 +28,7 @@
<control type="button" binding="reset" padLeft="8px" padBottom="8px">RESET</control> <control type="button" binding="reset" padLeft="8px" padBottom="8px">RESET</control>
</cpu> </cpu>
<keyboard id="keyboard" model="VT100"> <keyboard id="keyboard" model="VT100">
<control type="button" binding="caps-lock" padLeft="8px" padBottom="8px">CAPS LOCK</control>
<control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control> <control type="button" binding="break" padLeft="8px" padBottom="8px">BREAK</control>
<control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control> <control type="button" binding="ctrl" padLeft="8px" padBottom="8px">CTRL</control>
<control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control> <control type="button" binding="esc" padLeft="8px" padBottom="8px">ESC</control>

View file

@ -45,7 +45,7 @@
*/ */
var l,aa,ba={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},p={vo:0,xo:1,yo:2,dl:3,zo:4,Ao:5,Bo:6,Co:7,Do:8,Eo:9,Fo:10,Go:11,Ho:12,Io:13,Jo:14,Ko:15,Lo:16,Mo:17,No:18,Oo:19,Po:20,Qo:21,Ro:22,So:23,To:24,Uo:25,Vo:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41, var l,aa,ba={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},p={vo:0,xo:1,yo:2,dl:3,zo:4,Ao:5,Bo:6,Co:7,Do:8,Eo:9,Fo:10,Go:11,Ho:12,Io:13,Jo:14,Ko:15,Lo:16,Mo:17,No:18,Oo:19,Po:20,Qo:21,Ro:22,So:23,To:24,Uo:25,Vo:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,
"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ue:65,Bi:66,Ci:67,Di:68,E:69,Ei:70,Fi:71,Gi:72,Hi:73,Ii:74,Ji:75,Ki:76,Li:77,Mi:78,Ni:79,Oi:80,Q:81,Pi:82,Qi:83,Ri:84,Si:85,Ti:86,Ui:87,Vi:88,Wi:89,og:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ve:97,ql:98,sl:99,d:100,e:101,Cl:102,Dl:103,El:104,Fl:105,Vm:106,k:107,Wm:108,$m:109,n:110,gn:111,p:112,q:113,r:114,no:115,t:116,qo:117,ro:118,so:119,x:120,y:121,z:122, "*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ue:65,Bi:66,Ci:67,Di:68,E:69,Ei:70,Fi:71,Gi:72,Hi:73,Ii:74,Ji:75,Ki:76,Li:77,Mi:78,Ni:79,Oi:80,Q:81,Pi:82,Qi:83,Ri:84,Si:85,Ti:86,Ui:87,Vi:88,Wi:89,og:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ve:97,ql:98,sl:99,d:100,e:101,Cl:102,Dl:103,El:104,Fl:105,Vm:106,k:107,Wm:108,$m:109,n:110,gn:111,p:112,q:113,r:114,no:115,t:116,qo:117,ro:118,so:119,x:120,y:121,z:122,
"{":123,"|":124,"}":125,"~":126,Wo:127},ca={};ca[186]=p[";"];ca[187]=p["="];ca[188]=p[","];ca[189]=p["-"];ca[190]=p["."];ca[191]=p["/"];ca[192]=p["`"];ca[219]=p["["];ca[220]=p["\\"];ca[221]=p["]"];ca[222]=p["'"];ca[173]=p["-"];var da={};da[p["1"]]=p["!"];da[p["2"]]=p["@"];da[p["3"]]=p["#"];da[p["4"]]=p.$;da[p["5"]]=p["%"];da[p["6"]]=p["^"];da[p["7"]]=p["&"];da[p["8"]]=p["*"];da[p["9"]]=p["("];da[p["0"]]=p[")"];da[186]=p[":"];da[187]=p["+"];da[188]=p["<"];da[189]=p._;da[190]=p[">"];da[191]=p["?"]; "{":123,"|":124,"}":125,"~":126,Wo:127},ca={};ca[173]=p["-"];ca[186]=p[";"];ca[187]=p["="];ca[189]=p["-"];ca[188]=p[","];ca[190]=p["."];ca[191]=p["/"];ca[192]=p["`"];ca[219]=p["["];ca[220]=p["\\"];ca[221]=p["]"];ca[222]=p["'"];var da={};da[p["1"]]=p["!"];da[p["2"]]=p["@"];da[p["3"]]=p["#"];da[p["4"]]=p.$;da[p["5"]]=p["%"];da[p["6"]]=p["^"];da[p["7"]]=p["&"];da[p["8"]]=p["*"];da[p["9"]]=p["("];da[p["0"]]=p[")"];da[186]=p[":"];da[187]=p["+"];da[188]=p["<"];da[189]=p._;da[190]=p[">"];da[191]=p["?"];
da[192]=p["~"];da[219]=p["{"];da[220]=p["|"];da[221]=p["}"];da[222]=p['"'];da[173]=p._;da[61]=p["+"];da[59]=p[":"]; da[192]=p["~"];da[219]=p["{"];da[220]=p["|"];da[221]=p["}"];da[222]=p['"'];da[173]=p._;da[61]=p["+"];da[59]=p[":"];
function ea(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&& function ea(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function fa(a,b){var c,d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function ha(a,b,c){var d="";if(!b||4<b)b=4;for(var e=0;e<b;e++)d&&(d=","+d),d=fa(a&255,8)+d,a>>=8;return(c?"0b":"")+d} d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function fa(a,b){var c,d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function ha(a,b,c){var d="";if(!b||4<b)b=4;for(var e=0;e<b;e++)d&&(d=","+d),d=fa(a&255,8)+d,a>>=8;return(c?"0b":"")+d}

View file

@ -45,7 +45,7 @@
*/ */
var l,ba,ca={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},n={Um:0,Wm:1,Xm:2,Sj:3,Ym:4,Zm:5,$m:6,an:7,bn:8,cn:9,dn:10,en:11,fn:12,gn:13,hn:14,jn:15,kn:16,ln:17,mn:18,nn:19,on:20,pn:21,qn:22,rn:23,sn:24,tn:25,un:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41, var l,ba,ca={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},n={Um:0,Wm:1,Xm:2,Sj:3,Ym:4,Zm:5,$m:6,an:7,bn:8,cn:9,dn:10,en:11,fn:12,gn:13,hn:14,jn:15,kn:16,ln:17,mn:18,nn:19,on:20,pn:21,qn:22,rn:23,sn:24,tn:25,un:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,
"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Kd:65,wh:66,xh:67,yh:68,E:69,zh:70,Ah:71,Bh:72,Ch:73,Dh:74,Eh:75,Fh:76,Gh:77,Ih:78,Kh:79,Mh:80,Q:81,Ph:82,Rh:83,Th:84,Vh:85,Xh:86,Zh:87,ai:88,ci:89,vf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Md:97,dk:98,ek:99,d:100,e:101,pk:102,qk:103,rk:104,sk:105,Dl:106,k:107,El:108,Hl:109,n:110,Ml:111,p:112,q:113,r:114,Om:115,t:116,Rm:117,Sm:118,Tm:119,x:120,y:121,z:122, "*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Kd:65,wh:66,xh:67,yh:68,E:69,zh:70,Ah:71,Bh:72,Ch:73,Dh:74,Eh:75,Fh:76,Gh:77,Ih:78,Kh:79,Mh:80,Q:81,Ph:82,Rh:83,Th:84,Vh:85,Xh:86,Zh:87,ai:88,ci:89,vf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Md:97,dk:98,ek:99,d:100,e:101,pk:102,qk:103,rk:104,sk:105,Dl:106,k:107,El:108,Hl:109,n:110,Ml:111,p:112,q:113,r:114,Om:115,t:116,Rm:117,Sm:118,Tm:119,x:120,y:121,z:122,
"{":123,"|":124,"}":125,"~":126,vn:127},da={};da[186]=n[";"];da[187]=n["="];da[188]=n[","];da[189]=n["-"];da[190]=n["."];da[191]=n["/"];da[192]=n["`"];da[219]=n["["];da[220]=n["\\"];da[221]=n["]"];da[222]=n["'"];da[173]=n["-"];var p={};p[n["1"]]=n["!"];p[n["2"]]=n["@"];p[n["3"]]=n["#"];p[n["4"]]=n.$;p[n["5"]]=n["%"];p[n["6"]]=n["^"];p[n["7"]]=n["&"];p[n["8"]]=n["*"];p[n["9"]]=n["("];p[n["0"]]=n[")"];p[186]=n[":"];p[187]=n["+"];p[188]=n["<"];p[189]=n._;p[190]=n[">"];p[191]=n["?"];p[192]=n["~"]; "{":123,"|":124,"}":125,"~":126,vn:127},da={};da[173]=n["-"];da[186]=n[";"];da[187]=n["="];da[189]=n["-"];da[188]=n[","];da[190]=n["."];da[191]=n["/"];da[192]=n["`"];da[219]=n["["];da[220]=n["\\"];da[221]=n["]"];da[222]=n["'"];var p={};p[n["1"]]=n["!"];p[n["2"]]=n["@"];p[n["3"]]=n["#"];p[n["4"]]=n.$;p[n["5"]]=n["%"];p[n["6"]]=n["^"];p[n["7"]]=n["&"];p[n["8"]]=n["*"];p[n["9"]]=n["("];p[n["0"]]=n[")"];p[186]=n[":"];p[187]=n["+"];p[188]=n["<"];p[189]=n._;p[190]=n[">"];p[191]=n["?"];p[192]=n["~"];
p[219]=n["{"];p[220]=n["|"];p[221]=n["}"];p[222]=n['"'];p[173]=n._;p[61]=n["+"];p[59]=n[":"]; p[219]=n["{"];p[220]=n["|"];p[221]=n["}"];p[222]=n['"'];p[173]=n._;p[61]=n["+"];p[59]=n[":"];
function ea(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&& function ea(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function fa(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ga(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c} d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function fa(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ga(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}

View file

@ -125,16 +125,57 @@ class Keyboard8080 extends Component {
* *
* this.bindings[id] = control; * this.bindings[id] = control;
*/ */
control.onkeydown = function onKeyDown(event) { if (Web.isUserAgent("iOS")) {
return kbd.onKeyDown(event, true); /*
}; * For iOS devices, it's best to deal only with keypress events. The main reason is that we don't
control.onkeyup = function onKeyUp(event) { * get shift-key events, so we have no way of distinguishing between certain keys, such as ':' and
return kbd.onKeyDown(event, false); * ';', unless we are monitoring key presses. Another reason is that, under certain poorly documented
}; * conditions, an iOS keyup event will not contain any keyCode; this is most easily reproduced with
control.onkeypress = function onKeyPress(event) { * the iOS simulator and a physical keyboard (not the pop-up keyboard). When this happens, we think
return kbd.onKeyPress(event); * the key is stuck. Finally, certain other problems that we have tried to resolve when using a physical
}; * keyboard (eg, keeping the physical and virtual CAPS-LOCK states in sync) simply don't exist in the
control.onpaste = function onKeyPaste(event) { * iOS environment.
*
* So, with all that mind, it seems best to have a separate iOS keypress handler and forego keydown
* and keyup events entirely. The iOS keypress handler must also perform some additional checks, such
* as watching for keys that can only be typed on the emulated device when a shift key is down, and
* simulating "fake" shift-key down and up events.
*
* Perhaps we can eventually standardize on this alternate keypress-centric approach for ALL devices,
* but until then, it's safer to have these two code paths.
*
* UPDATE: So much for the best laid plans. iOS won't deliver BACKSPACE events to the keypress handler,
* so we have to deal with keydown/keyup events after all.
*/
control.onkeypress = function oniOSKeyPress(event)
{
return kbd.oniOSKeyPress(event);
};
control.onkeydown = function oniOSKeyDown(event)
{
return kbd.oniOSKeyDown(event, true);
};
control.onkeyup = function oniOSKeyUp(event)
{
return kbd.oniOSKeyDown(event, false);
};
}
else {
control.onkeydown = function onKeyDown(event)
{
return kbd.onKeyDown(event, true);
};
control.onkeyup = function onKeyUp(event)
{
return kbd.onKeyDown(event, false);
};
control.onkeypress = function onKeyPress(event)
{
return kbd.onKeyPress(event);
};
}
control.onpaste = function onKeyPaste(event)
{
return kbd.onPaste(event); return kbd.onPaste(event);
}; };
return true; return true;
@ -152,16 +193,25 @@ class Keyboard8080 extends Component {
/* /*
* TODO: Add some additional SOFTCODES configuration info that will tell us which soft * TODO: Add some additional SOFTCODES configuration info that will tell us which soft
* keys (eg, CTRL) should be treated as toggles, instead of hard-coding that knowledge below. * keys (eg, CTRL) should be treated as toggles, instead of hard-coding that knowledge below.
*
* Moreover, if a *real* CTRL or CAPS-LOCK key is pressed or released, it would be nice
* to update the state of these on-screen controls, too (ie, not just when the controls are
* clicked).
*/ */
var fDown = true; var fDown = true, bit = 0;
var fAutoRelease = (keyCode != Keys.KEYCODE.CTRL); if (keyCode == Keys.KEYCODE.CTRL) {
if (!fAutoRelease) { bit = Keyboard8080.STATE.CTRL;
}
else if (keyCode == Keys.KEYCODE.CAPS_LOCK) {
bit = Keyboard8080.STATE.CAPS_LOCK;
}
if (bit) {
control.style.fontWeight = "normal"; control.style.fontWeight = "normal";
fDown = !(kbd.bitsState & Keyboard8080.STATE.CTRL); fDown = !(kbd.bitsState & bit);
if (fDown) control.style.fontWeight = "bold"; if (fDown) control.style.fontWeight = "bold";
kbd.checkModifierKeys(keyCode, fDown); kbd.checkModifierKeys(keyCode, fDown);
} }
kbd.onSoftKeyDown(keyCode, fDown, fAutoRelease); kbd.onSoftKeyDown(keyCode, fDown, !bit);
if (kbd.cmp) kbd.cmp.updateFocus(); if (kbd.cmp) kbd.cmp.updateFocus();
}; };
}(this, this.config.SOFTCODES[sBinding]); }(this, this.config.SOFTCODES[sBinding]);
@ -403,6 +453,7 @@ class Keyboard8080 extends Component {
* @param {number} keyCode (ie, either a keycode or string ID) * @param {number} keyCode (ie, either a keycode or string ID)
* @param {boolean} fDown (true if key going down, false if key going up) * @param {boolean} fDown (true if key going down, false if key going up)
* @param {boolean} [fRight] (true if key is on the right, false if not or unknown or n/a) * @param {boolean} [fRight] (true if key is on the right, false if not or unknown or n/a)
* @return {boolean} (fDown updated as needed for CAPS-LOCK weirdness)
*/ */
checkModifierKeys(keyCode, fDown, fRight) checkModifierKeys(keyCode, fDown, fRight)
{ {
@ -422,6 +473,16 @@ class Keyboard8080 extends Component {
break; break;
case Keys.KEYCODE.CAPS_LOCK: case Keys.KEYCODE.CAPS_LOCK:
bit = Keyboard8080.STATE.CAPS_LOCK; bit = Keyboard8080.STATE.CAPS_LOCK;
/*
* WARNING: You have an entered a browser weirdness zone. In Chrome, pressing-and-releasing
* CAPS-LOCK generates a "down" event when it turns the lock on and an "up" event when it turns
* the lock off. Firefox, OTOH, generates only "down" events, so we have to "manufacture"
* the fDown parameter ourselves -- which means we also have to propagate it back to the caller.
*
* And, while this isn't necessary for Chrome, it doesn't appear to hurt anything in Chrome, so
* we're not going to bother making it browser-specific.
*/
fDown = !(this.bitsState & bit);
break; break;
} }
if (bit) { if (bit) {
@ -431,6 +492,7 @@ class Keyboard8080 extends Component {
this.bitsState &= ~bit; this.bitsState &= ~bit;
} }
} }
return fDown;
} }
/** /**
@ -468,12 +530,23 @@ class Keyboard8080 extends Component {
var fPass = true; var fPass = true;
var keyCode = event.keyCode; var keyCode = event.keyCode;
if (!COMPILED && this.messageEnabled(Messages8080.KEYS)) {
this.printMessage("onKey" + (fDown? "Down" : "Up") + "(" + keyCode + ")", true);
}
/*
* A note about Firefox: it uses different keyCodes for certain keys; there's a logic to the differences
* (they use ASCII codes), but since other browsers didn't follow suit, we must use a mapping table to
* convert their keyCodes to the more traditional values.
*/
keyCode = Keys.FF_KEYCODES[keyCode] || keyCode;
/* /*
* We now keep track of physical keyboard modifier keys. This makes it possible for new services * We now keep track of physical keyboard modifier keys. This makes it possible for new services
* to eventually be implemented (simulateKeysDown() and simulateKeysUp()), to map special ALT-key * to eventually be implemented (simulateKeysDown() and simulateKeysUp()), to map special ALT-key
* combinations to VT100 keys, etc. * combinations to VT100 keys, etc.
*/ */
this.checkModifierKeys(keyCode, fDown, event.location == Keys.LOCATION.RIGHT); fDown = this.checkModifierKeys(keyCode, fDown, event.location == Keys.LOCATION.RIGHT);
var softCode = this.getSoftCode(keyCode); var softCode = this.getSoftCode(keyCode);
if (softCode) { if (softCode) {
@ -554,21 +627,125 @@ class Keyboard8080 extends Component {
*/ */
onKeyPress(event) onKeyPress(event)
{ {
var keyCode = event.keyCode; /*
if (keyCode >= Keys.ASCII.A && keyCode <= Keys.ASCII.Z) { * A note about Firefox: the KeyboardEvent they pass to a keypress handler doesn't set 'keyCode', so
* we have to fallback to 'charCode' (or 'which'), both of which are deprecated but realistically can't
* really go away.
*
* TODO: Consider "upgrading" this code to use the new 'key' property. Note, however, that it's a string,
* not a number; for example; if the colon key is pressed, 'key' will be ":", whereas 'charCode' and 'which'
* will be 58.
*/
var charCode = event.keyCode || event.charCode;
if (charCode >= Keys.ASCII.A && charCode <= Keys.ASCII.Z) {
if (!(this.bitsState & (Keyboard8080.STATE.SHIFTS | Keyboard8080.STATE.CAPS_LOCK))) { if (!(this.bitsState & (Keyboard8080.STATE.SHIFTS | Keyboard8080.STATE.CAPS_LOCK))) {
this.bitsState |= Keyboard8080.STATE.CAPS_LOCK; this.bitsState |= Keyboard8080.STATE.CAPS_LOCK;
this.onSoftKeyDown(Keys.KEYCODE.CAPS_LOCK, true); this.onSoftKeyDown(Keys.KEYCODE.CAPS_LOCK, true);
this.updateLEDs(); this.updateLEDs();
} }
} }
else if (keyCode >= Keys.ASCII.a && keyCode <= Keys.ASCII.z) { else if (charCode >= Keys.ASCII.a && charCode <= Keys.ASCII.z) {
if (this.bitsState & Keyboard8080.STATE.CAPS_LOCK) { if (this.bitsState & Keyboard8080.STATE.CAPS_LOCK) {
this.bitsState &= ~Keyboard8080.STATE.CAPS_LOCK; this.bitsState &= ~Keyboard8080.STATE.CAPS_LOCK;
this.onSoftKeyDown(Keys.KEYCODE.CAPS_LOCK, false); this.onSoftKeyDown(Keys.KEYCODE.CAPS_LOCK, false);
this.updateLEDs(); this.updateLEDs();
} }
} }
if (!COMPILED && this.messageEnabled(Messages8080.KEYS)) {
this.printMessage("onKeyPress(" + charCode + ")", true);
}
return true;
}
/**
* oniOSKeyDown(event, fDown)
*
* @this {Keyboard8080}
* @param {Object} event
* @param {boolean} fDown is true for a keyDown event, false for up
* @return {boolean} true to pass the event along, false to consume it
*/
oniOSKeyDown(event, fDown)
{
var fPass = true;
/*
* Because keydown/keyup events on iOS are inherently "fake", they can be delivered so quickly that
* if we generated matching down/up events, then the emulated machine might not see the key transition.
* So we now deliver only down events, with fAutoRelease always set (see below).
*
* Also, because of iOS weirdness discussed in setBinding() when using a physical keyboard, the keyup
* event may not provide a valid keyCode, which is another reason we have no choice but to always deliver
* keys with fAutoRelease set to true.
*/
if (fDown) {
var keyCode = event.keyCode;
var bMapping = this.config.KEYMAP[keyCode];
if (bMapping) {
/*
* If this is a mappable key, but the mapping isn't in the CHARMAP table, then we have to process
* it now; the most common reason is that the key doesn't generate a keypress event (eg, BACKSPACE).
*/
if (!this.indexOfCharMap(bMapping)) {
fPass = this.onSoftKeyDown(keyCode, fDown, true);
if (!COMPILED && this.messageEnabled(Messages8080.KEYS)) {
this.printMessage("oniOSKey" + (fDown ? "Down" : "Up") + "(" + keyCode + "): pass=" + fPass, true);
}
}
}
}
return fPass;
}
/**
* oniOSKeyPress(event)
*
* @this {Keyboard8080}
* @param {Object} event
* @return {boolean} true to pass the event along, false to consume it
*/
oniOSKeyPress(event)
{
/*
* A note about Firefox: the KeyboardEvent they pass to a keypress handler doesn't set 'keyCode', so
* we have to fallback to 'charCode' (or 'which'), both of which are deprecated but realistically can't
* really go away.
*
* TODO: Consider "upgrading" this code to use the new 'key' property. Note, however, that it's a string,
* not a number; for example; if the colon key is pressed, 'key' will be ":", whereas 'charCode' and 'which'
* will be 58.
*/
var charCode = event.keyCode || event.charCode;
var fShifted = false;
var bMapping = this.config.CHARMAP[charCode];
if (bMapping) {
if (bMapping & 0x80) {
bMapping &= 0x7f;
fShifted = true;
}
/*
* Since the rest of our code was built around keyCodes, not charCodes, we look up the CHARMAP byte
* in the KEYMAP table to find a corresponding keyCode, and that's what we'll use to simulate the key
* press/release.
*/
var softCode = this.indexOfKeyMap(bMapping);
if (softCode) {
if (!fShifted) {
this.onSoftKeyDown(Keys.KEYCODE.SHIFT, false);
} else {
this.onSoftKeyDown(Keys.KEYCODE.SHIFT, true, true);
}
this.onSoftKeyDown(softCode, true, true);
}
}
if (!COMPILED && this.messageEnabled(Messages8080.KEYS)) {
this.printMessage("oniOSKeyPress(" + charCode + ")", true);
}
return true; return true;
} }
@ -606,6 +783,36 @@ class Keyboard8080 extends Component {
return true; return true;
} }
/**
* indexOfKeyMap(bMapping)
*
* @this {Keyboard8080}
* @param {number} bMapping
* @return {number}
*/
indexOfKeyMap(bMapping)
{
for (var keyCode in this.config.KEYMAP) {
if (this.config.KEYMAP[keyCode] == bMapping) return +keyCode;
}
return 0;
}
/**
* indexOfCharMap(bMapping)
*
* @this {Keyboard8080}
* @param {number} bMapping
* @return {number}
*/
indexOfCharMap(bMapping)
{
for (var charCode in this.config.CHARMAP) {
if (this.config.CHARMAP[charCode] == bMapping) return +charCode;
}
return 0;
}
/** /**
* indexOfSoftKey(softCode) * indexOfSoftKey(softCode)
* *
@ -935,6 +1142,7 @@ Keyboard8080.WASDCODES[Keys.ASCII.L] = Keys.KEYCODE.SPACE;
Keyboard8080.SI1978 = { Keyboard8080.SI1978 = {
MODEL: 1978.1, MODEL: 1978.1,
KEYMAP: {}, KEYMAP: {},
CHARMAP: {},
ALTCODES: Keyboard8080.WASDCODES, ALTCODES: Keyboard8080.WASDCODES,
LEDCODES: {}, LEDCODES: {},
SOFTCODES: { SOFTCODES: {
@ -951,7 +1159,7 @@ Keyboard8080.VT100 = {
MODEL: 100.0, MODEL: 100.0,
KEYMAP: { KEYMAP: {
/* /*
* Map of host key codes to VT100 key addresses (7-bit values representing key positions on the VT100). * Map of host keyCodes to VT100 key addresses (7-bit values representing key positions on the VT100).
* *
* NOTE: The VT100 keyboard has both BACKSPACE and DELETE keys, whereas modern keyboards generally only * NOTE: The VT100 keyboard has both BACKSPACE and DELETE keys, whereas modern keyboards generally only
* have DELETE. And sadly, when you press DELETE, your modern keyboard and/or modern browser is reporting * have DELETE. And sadly, when you press DELETE, your modern keyboard and/or modern browser is reporting
@ -1048,15 +1256,125 @@ Keyboard8080.VT100 = {
[Keys.KEYCODE.F9]: 0x7B, // aka SET-UP [Keys.KEYCODE.F9]: 0x7B, // aka SET-UP
[Keys.KEYCODE.CTRL]: 0x7C, [Keys.KEYCODE.CTRL]: 0x7C,
[Keys.KEYCODE.SHIFT]: 0x7D, // either shift key (doesn't matter) [Keys.KEYCODE.SHIFT]: 0x7D, // either shift key (doesn't matter)
[Keys.KEYCODE.CAPS_LOCK]: 0x7E [Keys.KEYCODE.CAPS_LOCK]:0x7E
},
CHARMAP: {
/*
* Map of host charCodes to VT100 key addresses (7-bit values representing key positions on the VT100);
* the 8th bit (0x80) is set for keys that need to be shifted.
*
* This is currently used only with the iOS keypress handler, which receives character codes rather than
* keyboard codes. As a result, this table is not as complete as the KEYMAP table, because certain keys
* are delivered as key presses and/or are simply not present on the iOS keyboard; the arrow keys are a
* good example.
*
* ES6 ALERT: As you can see below, I've finally started using computed property names.
*/
[Keys.ASCII.p]: 0x05,
[Keys.ASCII.o]: 0x06,
[Keys.ASCII.y]: 0x07,
[Keys.ASCII.t]: 0x08,
[Keys.ASCII.w]: 0x09,
[Keys.ASCII.q]: 0x0A,
[Keys.ASCII[']']]: 0x14,
[Keys.ASCII['[']]: 0x15,
[Keys.ASCII.i]: 0x16,
[Keys.ASCII.u]: 0x17,
[Keys.ASCII.r]: 0x18,
[Keys.ASCII.e]: 0x19,
[Keys.ASCII['1']]: 0x1A,
[Keys.ASCII['`']]: 0x24,
[Keys.ASCII['-']]: 0x25,
[Keys.ASCII['9']]: 0x26,
[Keys.ASCII['7']]: 0x27,
[Keys.ASCII['4']]: 0x28,
[Keys.ASCII['3']]: 0x29,
[Keys.ASCII['=']]: 0x34,
[Keys.ASCII['0']]: 0x35,
[Keys.ASCII['8']]: 0x36,
[Keys.ASCII['6']]: 0x37,
[Keys.ASCII['5']]: 0x38,
[Keys.ASCII['2']]: 0x39,
[Keys.ASCII['\\']]: 0x45,
[Keys.ASCII.l]: 0x46,
[Keys.ASCII.k]: 0x47,
[Keys.ASCII.g]: 0x48,
[Keys.ASCII.f]: 0x49,
[Keys.ASCII.a]: 0x4A,
[Keys.ASCII["'"]]: 0x55,
[Keys.ASCII[';']]: 0x56,
[Keys.ASCII.j]: 0x57,
[Keys.ASCII.h]: 0x58,
[Keys.ASCII.d]: 0x59,
[Keys.ASCII.s]: 0x5A,
[Keys.KEYCODE.CR]: 0x64, // TODO: Figure out why the Technical Manual lists CR at both 0x04 and 0x64
[Keys.ASCII['.']]: 0x65,
[Keys.ASCII[',']]: 0x66,
[Keys.ASCII.n]: 0x67,
[Keys.ASCII.b]: 0x68,
[Keys.ASCII.x]: 0x69,
[Keys.ASCII['/']]: 0x75,
[Keys.ASCII.m]: 0x76,
[Keys.ASCII[' ']]: 0x77,
[Keys.ASCII.v]: 0x78,
[Keys.ASCII.c]: 0x79,
[Keys.ASCII.z]: 0x7A,
[Keys.ASCII.P]: 0x85,
[Keys.ASCII.O]: 0x86,
[Keys.ASCII.Y]: 0x87,
[Keys.ASCII.T]: 0x88,
[Keys.ASCII.W]: 0x89,
[Keys.ASCII.Q]: 0x8A,
[Keys.ASCII['}']]: 0x94,
[Keys.ASCII['{']]: 0x95,
[Keys.ASCII.I]: 0x96,
[Keys.ASCII.U]: 0x97,
[Keys.ASCII.R]: 0x98,
[Keys.ASCII.E]: 0x99,
[Keys.ASCII['!']]: 0x9A,
[Keys.ASCII['~']]: 0xA4,
[Keys.ASCII['_']]: 0xA5,
[Keys.ASCII['(']]: 0xA6,
[Keys.ASCII['&']]: 0xA7,
[Keys.ASCII['$']]: 0xA8,
[Keys.ASCII['#']]: 0xA9,
[Keys.ASCII['+']]: 0xB4,
[Keys.ASCII[')']]: 0xB5,
[Keys.ASCII['*']]: 0xB6,
[Keys.ASCII['^']]: 0xB7,
[Keys.ASCII['%']]: 0xB8,
[Keys.ASCII['@']]: 0xB9,
[Keys.ASCII['|']]: 0xC5,
[Keys.ASCII.L]: 0xC6,
[Keys.ASCII.K]: 0xC7,
[Keys.ASCII.G]: 0xC8,
[Keys.ASCII.F]: 0xC9,
[Keys.ASCII.A]: 0xCA,
[Keys.ASCII['"']]: 0xD5,
[Keys.ASCII[':']]: 0xD6,
[Keys.ASCII.J]: 0xD7,
[Keys.ASCII.H]: 0xD8,
[Keys.ASCII.D]: 0xD9,
[Keys.ASCII.S]: 0xDA,
[Keys.ASCII['>']]: 0xE5,
[Keys.ASCII['<']]: 0xE6,
[Keys.ASCII.N]: 0xE7,
[Keys.ASCII.B]: 0xE8,
[Keys.ASCII.X]: 0xE9,
[Keys.ASCII['?']]: 0xF5,
[Keys.ASCII.M]: 0xF6,
[Keys.ASCII.V]: 0xF8,
[Keys.ASCII.C]: 0xF9,
[Keys.ASCII.Z]: 0xFA
}, },
ALTCODES: {}, ALTCODES: {},
LEDCODES: {}, LEDCODES: {},
SOFTCODES: { SOFTCODES: {
'caps-lock': Keys.KEYCODE.CAPS_LOCK,
'ctrl': Keys.KEYCODE.CTRL, 'ctrl': Keys.KEYCODE.CTRL,
'esc': Keys.KEYCODE.ESC, 'esc': Keys.KEYCODE.ESC,
'tab': Keys.KEYCODE.TAB, 'tab': Keys.KEYCODE.TAB,
'num-comma': Keys.KEYCODE.F5,// since modern keypads don't typically have a comma... 'num-comma': Keys.KEYCODE.F5, // since modern keypads don't typically have a comma...
'break': Keys.KEYCODE.F6, 'break': Keys.KEYCODE.F6,
'line-feed': Keys.KEYCODE.F7, 'line-feed': Keys.KEYCODE.F7,
'no-scroll': Keys.KEYCODE.F8, 'no-scroll': Keys.KEYCODE.F8,

View file

@ -1103,7 +1103,7 @@ Keyboard.prototype.findBinding = function(simCode, sType, fDown)
for (var code in Keys.SHIFTED_KEYCODES) { for (var code in Keys.SHIFTED_KEYCODES) {
if (simCode == Keys.SHIFTED_KEYCODES[code]) { if (simCode == Keys.SHIFTED_KEYCODES[code]) {
simCode = +code; simCode = +code;
code = Keys.STUPID_KEYCODES[code]; code = Keys.NONASCII_KEYCODES[code];
if (code) simCode = code; if (code) simCode = code;
break; break;
} }
@ -2045,7 +2045,7 @@ Keyboard.prototype.getSimCode = function(keyCode, fShifted)
} }
} }
else { else {
if (code = Keys.STUPID_KEYCODES[keyCode]) { if (code = Keys.NONASCII_KEYCODES[keyCode]) {
simCode = code; simCode = code;
} }
} }

View file

@ -69,10 +69,10 @@ var Keys = {
* them using ASCII codes (eg, the LEFT arrow key uses the ASCII code for '%' or 37). * them using ASCII codes (eg, the LEFT arrow key uses the ASCII code for '%' or 37).
*/ */
KEYCODE: { KEYCODE: {
/* 0x08 */ BS: 8, // BACKSPACE /* 0x08 */ BS: 8, // BACKSPACE (ASCII.CTRL_H)
/* 0x09 */ TAB: 9, /* 0x09 */ TAB: 9, // TAB (ASCII.CTRL_I)
/* 0x0A */ LF: 10, // LINE FEED (TODO: Determine if any key actually generates this) /* 0x0A */ LF: 10, // LINE FEED (ASCII.CTRL_J) (TODO: Determine if any key actually generates this)
/* 0x0D */ CR: 13, // CARRIAGE RETURN /* 0x0D */ CR: 13, // CARRIAGE RETURN (ASCII.CTRL_M)
/* 0x10 */ SHIFT: 16, /* 0x10 */ SHIFT: 16,
/* 0x11 */ CTRL: 17, /* 0x11 */ CTRL: 17,
/* 0x12 */ ALT: 18, /* 0x12 */ ALT: 18,
@ -153,17 +153,17 @@ var Keys = {
/* 0x90 */ NUM_LOCK: 144, /* 0x90 */ NUM_LOCK: 144,
/* 0x91 */ SCROLL_LOCK: 145, /* 0x91 */ SCROLL_LOCK: 145,
/* 0xAD */ FF_DASH: 173, /* 0xAD */ FF_DASH: 173,
/* 0xBA */ SEMI: 186, // Firefox: 59 /* 0xBA */ SEMI: 186, // Firefox: 59 (FF_SEMI)
/* 0xBB */ EQUALS: 187, // Firefox: 61 /* 0xBB */ EQUALS: 187, // Firefox: 61 (FF_EQUALS)
/* 0xBC */ COMMA: 188, // Firefox: 44 /* 0xBC */ COMMA: 188,
/* 0xBD */ DASH: 189, // Firefox: 173 /* 0xBD */ DASH: 189, // Firefox: 173 (FF_DASH)
/* 0xBE */ PERIOD: 190, // Firefox: 46 /* 0xBE */ PERIOD: 190,
/* 0xBF */ SLASH: 191, // Firefox: 47 /* 0xBF */ SLASH: 191,
/* 0xC0 */ BQUOTE: 192, // Firefox: 96 /* 0xC0 */ BQUOTE: 192,
/* 0xDB */ LBRACK: 219, // Firefox: 91 /* 0xDB */ LBRACK: 219,
/* 0xDC */ BSLASH: 220, // Firefox: 92 /* 0xDC */ BSLASH: 220,
/* 0xDD */ RBRACK: 221, // Firefox: 93 /* 0xDD */ RBRACK: 221,
/* 0xDE */ QUOTE: 222, // Firefox: 39 /* 0xDE */ QUOTE: 222,
/* 0xE0 */ FF_CMD: 224, // Firefox only (used for both CMD and RCMD) /* 0xE0 */ FF_CMD: 224, // Firefox only (used for both CMD and RCMD)
// //
// The following biases use what I'll call Decimal Coded Binary or DCB (the opposite of BCD), // The following biases use what I'll call Decimal Coded Binary or DCB (the opposite of BCD),
@ -201,22 +201,43 @@ var Keys = {
*/ */
Keys.KEYCODE.NUM_CR = Keys.KEYCODE.CR + Keys.KEYCODE.ONRIGHT; Keys.KEYCODE.NUM_CR = Keys.KEYCODE.CR + Keys.KEYCODE.ONRIGHT;
/* /*
* Maps "stupid" keyCodes to their "non-stupid" counterparts * Maps Firefox keyCodes to their more common keyCode counterparts; a number of entries in this table
* are no longer valid (if indeed they ever were), so they've been commented out. It's likely that I
* simply extended this table to resolve additional differences in other browsers (ie, Opera), but without
* browser-specific checks, it's not safe to perform all the mappings shown below.
*/ */
Keys.STUPID_KEYCODES = {}; Keys.FF_KEYCODES = {};
Keys.STUPID_KEYCODES[Keys.KEYCODE.SEMI] = Keys.ASCII[';']; // 186 -> 59 Keys.FF_KEYCODES[Keys.KEYCODE.FF_SEMI] = Keys.KEYCODE.SEMI; // 59 -> 186
Keys.STUPID_KEYCODES[Keys.KEYCODE.EQUALS] = Keys.ASCII['=']; // 187 -> 61 Keys.FF_KEYCODES[Keys.KEYCODE.FF_EQUALS] = Keys.KEYCODE.EQUALS; // 61 -> 187
Keys.STUPID_KEYCODES[Keys.KEYCODE.COMMA] = Keys.ASCII[',']; // 188 -> 44 Keys.FF_KEYCODES[Keys.KEYCODE.FF_DASH] = Keys.KEYCODE.DASH; // 173 -> 189
Keys.STUPID_KEYCODES[Keys.KEYCODE.DASH] = Keys.ASCII['-']; // 189 -> 45 Keys.FF_KEYCODES[Keys.KEYCODE.FF_CMD] = Keys.KEYCODE.CMD; // 224 -> 91
Keys.STUPID_KEYCODES[Keys.KEYCODE.PERIOD] = Keys.ASCII['.']; // 190 -> 46 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_COMMA] = Keys.KEYCODE.COMMA; // 44 -> 188
Keys.STUPID_KEYCODES[Keys.KEYCODE.SLASH] = Keys.ASCII['/']; // 191 -> 47 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_PERIOD] = Keys.KEYCODE.PERIOD; // 46 -> 190
Keys.STUPID_KEYCODES[Keys.KEYCODE.BQUOTE] = Keys.ASCII['`']; // 192 -> 96 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_SLASH] = Keys.KEYCODE.SLASH; // 47 -> 191
Keys.STUPID_KEYCODES[Keys.KEYCODE.LBRACK] = Keys.ASCII['[']; // 219 -> 91 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_BQUOTE] = Keys.KEYCODE.BQUOTE; // 96 -> 192
Keys.STUPID_KEYCODES[Keys.KEYCODE.BSLASH] = Keys.ASCII['\\']; // 220 -> 92 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_LBRACK = Keys.KEYCODE.LBRACK; // 91 -> 219
Keys.STUPID_KEYCODES[Keys.KEYCODE.RBRACK] = Keys.ASCII[']']; // 221 -> 93 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_BSLASH] = Keys.KEYCODE.BSLASH; // 92 -> 220
Keys.STUPID_KEYCODES[Keys.KEYCODE.QUOTE] = Keys.ASCII["'"]; // 222 -> 39 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_RBRACK] = Keys.KEYCODE.RBRACK; // 93 -> 221
Keys.STUPID_KEYCODES[Keys.KEYCODE.FF_DASH] = Keys.ASCII['-']; // Keys.FF_KEYCODES[Keys.KEYCODE.FF_QUOTE] = Keys.KEYCODE.QUOTE; // 39 -> 222
/*
* Maps non-ASCII keyCodes to their ASCII counterparts
*/
Keys.NONASCII_KEYCODES = {};
Keys.NONASCII_KEYCODES[Keys.KEYCODE.FF_DASH] = Keys.ASCII['-']; // 173 -> 45
Keys.NONASCII_KEYCODES[Keys.KEYCODE.SEMI] = Keys.ASCII[';']; // 186 -> 59
Keys.NONASCII_KEYCODES[Keys.KEYCODE.EQUALS] = Keys.ASCII['=']; // 187 -> 61
Keys.NONASCII_KEYCODES[Keys.KEYCODE.DASH] = Keys.ASCII['-']; // 189 -> 45
Keys.NONASCII_KEYCODES[Keys.KEYCODE.COMMA] = Keys.ASCII[',']; // 188 -> 44
Keys.NONASCII_KEYCODES[Keys.KEYCODE.PERIOD] = Keys.ASCII['.']; // 190 -> 46
Keys.NONASCII_KEYCODES[Keys.KEYCODE.SLASH] = Keys.ASCII['/']; // 191 -> 47
Keys.NONASCII_KEYCODES[Keys.KEYCODE.BQUOTE] = Keys.ASCII['`']; // 192 -> 96
Keys.NONASCII_KEYCODES[Keys.KEYCODE.LBRACK] = Keys.ASCII['[']; // 219 -> 91
Keys.NONASCII_KEYCODES[Keys.KEYCODE.BSLASH] = Keys.ASCII['\\']; // 220 -> 92
Keys.NONASCII_KEYCODES[Keys.KEYCODE.RBRACK] = Keys.ASCII[']']; // 221 -> 93
Keys.NONASCII_KEYCODES[Keys.KEYCODE.QUOTE] = Keys.ASCII["'"]; // 222 -> 39
/* /*
* Maps unshifted keyCodes to their shifted counterparts; to be used when a shift-key is down. * Maps unshifted keyCodes to their shifted counterparts; to be used when a shift-key is down.

View file

@ -69,10 +69,10 @@ var Keys = {
* them using ASCII codes (eg, the LEFT arrow key uses the ASCII code for '%' or 37). * them using ASCII codes (eg, the LEFT arrow key uses the ASCII code for '%' or 37).
*/ */
KEYCODE: { KEYCODE: {
/* 0x08 */ BS: 8, // BACKSPACE /* 0x08 */ BS: 8, // BACKSPACE (ASCII.CTRL_H)
/* 0x09 */ TAB: 9, /* 0x09 */ TAB: 9, // TAB (ASCII.CTRL_I)
/* 0x0A */ LF: 10, // LINE FEED (TODO: Determine if any key actually generates this) /* 0x0A */ LF: 10, // LINE FEED (ASCII.CTRL_J) (TODO: Determine if any key actually generates this)
/* 0x0D */ CR: 13, // CARRIAGE RETURN /* 0x0D */ CR: 13, // CARRIAGE RETURN (ASCII.CTRL_M)
/* 0x10 */ SHIFT: 16, /* 0x10 */ SHIFT: 16,
/* 0x11 */ CTRL: 17, /* 0x11 */ CTRL: 17,
/* 0x12 */ ALT: 18, /* 0x12 */ ALT: 18,
@ -153,17 +153,17 @@ var Keys = {
/* 0x90 */ NUM_LOCK: 144, /* 0x90 */ NUM_LOCK: 144,
/* 0x91 */ SCROLL_LOCK: 145, /* 0x91 */ SCROLL_LOCK: 145,
/* 0xAD */ FF_DASH: 173, /* 0xAD */ FF_DASH: 173,
/* 0xBA */ SEMI: 186, // Firefox: 59 /* 0xBA */ SEMI: 186, // Firefox: 59 (FF_SEMI)
/* 0xBB */ EQUALS: 187, // Firefox: 61 /* 0xBB */ EQUALS: 187, // Firefox: 61 (FF_EQUALS)
/* 0xBC */ COMMA: 188, // Firefox: 44 /* 0xBC */ COMMA: 188,
/* 0xBD */ DASH: 189, // Firefox: 173 /* 0xBD */ DASH: 189, // Firefox: 173 (FF_DASH)
/* 0xBE */ PERIOD: 190, // Firefox: 46 /* 0xBE */ PERIOD: 190,
/* 0xBF */ SLASH: 191, // Firefox: 47 /* 0xBF */ SLASH: 191,
/* 0xC0 */ BQUOTE: 192, // Firefox: 96 /* 0xC0 */ BQUOTE: 192,
/* 0xDB */ LBRACK: 219, // Firefox: 91 /* 0xDB */ LBRACK: 219,
/* 0xDC */ BSLASH: 220, // Firefox: 92 /* 0xDC */ BSLASH: 220,
/* 0xDD */ RBRACK: 221, // Firefox: 93 /* 0xDD */ RBRACK: 221,
/* 0xDE */ QUOTE: 222, // Firefox: 39 /* 0xDE */ QUOTE: 222,
/* 0xE0 */ FF_CMD: 224, // Firefox only (used for both CMD and RCMD) /* 0xE0 */ FF_CMD: 224, // Firefox only (used for both CMD and RCMD)
// //
// The following biases use what I'll call Decimal Coded Binary or DCB (the opposite of BCD), // The following biases use what I'll call Decimal Coded Binary or DCB (the opposite of BCD),
@ -202,21 +202,41 @@ var Keys = {
Keys.KEYCODE.NUM_CR = Keys.KEYCODE.CR + Keys.KEYCODE.ONRIGHT; Keys.KEYCODE.NUM_CR = Keys.KEYCODE.CR + Keys.KEYCODE.ONRIGHT;
/* /*
* Maps "stupid" keyCodes to their "non-stupid" counterparts * Maps Firefox keyCodes to their more common keyCode counterparts; a number of entries in this table
* are no longer valid (if indeed they ever were), so they've been commented out. It's likely that I
* simply extended this table to resolve additional differences in other browsers (ie, Opera), but without
* browser-specific checks, it's not safe to perform all the mappings shown below.
*/ */
Keys.STUPID_KEYCODES = {}; Keys.FF_KEYCODES = {};
Keys.STUPID_KEYCODES[Keys.KEYCODE.SEMI] = Keys.ASCII[';']; // 186 -> 59 Keys.FF_KEYCODES[Keys.KEYCODE.FF_SEMI] = Keys.KEYCODE.SEMI; // 59 -> 186
Keys.STUPID_KEYCODES[Keys.KEYCODE.EQUALS] = Keys.ASCII['=']; // 187 -> 61 Keys.FF_KEYCODES[Keys.KEYCODE.FF_EQUALS] = Keys.KEYCODE.EQUALS; // 61 -> 187
Keys.STUPID_KEYCODES[Keys.KEYCODE.COMMA] = Keys.ASCII[',']; // 188 -> 44 Keys.FF_KEYCODES[Keys.KEYCODE.FF_DASH] = Keys.KEYCODE.DASH; // 173 -> 189
Keys.STUPID_KEYCODES[Keys.KEYCODE.DASH] = Keys.ASCII['-']; // 189 -> 45 Keys.FF_KEYCODES[Keys.KEYCODE.FF_CMD] = Keys.KEYCODE.CMD; // 224 -> 91
Keys.STUPID_KEYCODES[Keys.KEYCODE.PERIOD] = Keys.ASCII['.']; // 190 -> 46 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_COMMA] = Keys.KEYCODE.COMMA; // 44 -> 188
Keys.STUPID_KEYCODES[Keys.KEYCODE.SLASH] = Keys.ASCII['/']; // 191 -> 47 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_PERIOD] = Keys.KEYCODE.PERIOD; // 46 -> 190
Keys.STUPID_KEYCODES[Keys.KEYCODE.BQUOTE] = Keys.ASCII['`']; // 192 -> 96 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_SLASH] = Keys.KEYCODE.SLASH; // 47 -> 191
Keys.STUPID_KEYCODES[Keys.KEYCODE.LBRACK] = Keys.ASCII['[']; // 219 -> 91 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_BQUOTE] = Keys.KEYCODE.BQUOTE; // 96 -> 192
Keys.STUPID_KEYCODES[Keys.KEYCODE.BSLASH] = Keys.ASCII['\\']; // 220 -> 92 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_LBRACK = Keys.KEYCODE.LBRACK; // 91 -> 219
Keys.STUPID_KEYCODES[Keys.KEYCODE.RBRACK] = Keys.ASCII[']']; // 221 -> 93 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_BSLASH] = Keys.KEYCODE.BSLASH; // 92 -> 220
Keys.STUPID_KEYCODES[Keys.KEYCODE.QUOTE] = Keys.ASCII["'"]; // 222 -> 39 // Keys.FF_KEYCODES[Keys.KEYCODE.FF_RBRACK] = Keys.KEYCODE.RBRACK; // 93 -> 221
Keys.STUPID_KEYCODES[Keys.KEYCODE.FF_DASH] = Keys.ASCII['-']; // Keys.FF_KEYCODES[Keys.KEYCODE.FF_QUOTE] = Keys.KEYCODE.QUOTE; // 39 -> 222
/*
* Maps non-ASCII keyCodes to their ASCII counterparts
*/
Keys.NONASCII_KEYCODES = {};
Keys.NONASCII_KEYCODES[Keys.KEYCODE.FF_DASH] = Keys.ASCII['-']; // 173 -> 45
Keys.NONASCII_KEYCODES[Keys.KEYCODE.SEMI] = Keys.ASCII[';']; // 186 -> 59
Keys.NONASCII_KEYCODES[Keys.KEYCODE.EQUALS] = Keys.ASCII['=']; // 187 -> 61
Keys.NONASCII_KEYCODES[Keys.KEYCODE.DASH] = Keys.ASCII['-']; // 189 -> 45
Keys.NONASCII_KEYCODES[Keys.KEYCODE.COMMA] = Keys.ASCII[',']; // 188 -> 44
Keys.NONASCII_KEYCODES[Keys.KEYCODE.PERIOD] = Keys.ASCII['.']; // 190 -> 46
Keys.NONASCII_KEYCODES[Keys.KEYCODE.SLASH] = Keys.ASCII['/']; // 191 -> 47
Keys.NONASCII_KEYCODES[Keys.KEYCODE.BQUOTE] = Keys.ASCII['`']; // 192 -> 96
Keys.NONASCII_KEYCODES[Keys.KEYCODE.LBRACK] = Keys.ASCII['[']; // 219 -> 91
Keys.NONASCII_KEYCODES[Keys.KEYCODE.BSLASH] = Keys.ASCII['\\']; // 220 -> 92
Keys.NONASCII_KEYCODES[Keys.KEYCODE.RBRACK] = Keys.ASCII[']']; // 221 -> 93
Keys.NONASCII_KEYCODES[Keys.KEYCODE.QUOTE] = Keys.ASCII["'"]; // 222 -> 39
/* /*
* Maps unshifted keyCodes to their shifted counterparts; to be used when a shift-key is down. * Maps unshifted keyCodes to their shifted counterparts; to be used when a shift-key is down.

View file

@ -29,263 +29,268 @@
http://pcjs.org/modules/pc8080/lib/debugger.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2017
*/ */
var k;function ba(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]} var k;function aa(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
var m={me:0,pe:1,qe:2,re:3,se:4,te:5,ue:6,ve:7,we:8,xe:9,ye:10,ze:11,Ae:12,Be:13,Ce:14,De:15,Ee:16,Fe:17,Ge:18,He:19,Ie:20,Je:21,Ke:22,Le:23,Me:24,Ne:25,Oe:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,qb:65,sc:66,uc:67,Sb:68,E:69,yc:70,zc:71,Ac:72,Bc:73,Ic:74,Jc:75,Vb:76,Qc:77,Rc:78,Tc:79,Uc:80,Q:81,$c:82,cd:83,jd:84,kd:85,ld:86,md:87, var m={Be:0,Ee:1,Fe:2,Ge:3,He:4,Ie:5,Je:6,Ke:7,Le:8,Me:9,Ne:10,Oe:11,Pe:12,Qe:13,Re:14,Se:15,Te:16,Ue:17,Ve:18,We:19,Xe:20,Ye:21,Ze:22,$e:23,af:24,bf:25,cf:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ab:65,Ub:66,Vb:67,Fb:68,E:69,Yb:70,Zb:71,$b:72,ac:73,bc:74,cc:75,Hb:76,gc:77,hc:78,lc:79,mc:80,Q:81,nc:82,pc:83,qc:84,rc:85,tc:86,uc:87,
od:88,pd:89,Eb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,qd:97,xf:98,yf:99,d:100,e:101,zf:102,Af:103,Bf:104,Cf:105,Df:106,k:107,Ef:108,Ff:109,n:110,Gf:111,p:112,q:113,r:114,Hf:115,t:116,Jf:117,Kf:118,Lf:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Pe:127}; wc:88,xc:89,wb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,yc:97,ud:98,xd:99,d:100,e:101,Bd:102,Dd:103,Ed:104,Fd:105,Od:106,k:107,Pd:108,Rd:109,n:110,Sd:111,p:112,q:113,r:114,oe:115,t:116,pe:117,qe:118,re:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,df:127},ca={59:186,61:187,173:189,224:91};
function n(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cc=b.comment;this.xd=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.ab=this.id:(this.bb=this.id.substr(0,a),this.ab=this.id.substr(a+1));this.G={ready:!1,kb:!1,Fb:!1,ja:!1,error:!1};this.wb=null;this.G.error=!1;this.ha=c||0;this.K=this.u=this.H=this.R=this.ta=null;ca.push(this)}function da(a,b,c){ea[a]&&b&&(ea[a][b]=c)}function fa(){return Date.now()||+new Date} function n(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Ad=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.cb=this.id:(this.eb=this.id.substr(0,a),this.cb=this.id.substr(a+1));this.G={ready:!1,mb:!1,Ib:!1,ja:!1,error:!1};this.zb=null;this.G.error=!1;this.ha=c||0;this.K=this.u=this.H=this.R=this.ta=null;da.push(this)}function ea(a,b,c){fa[a]&&b&&(fa[a][b]=c)}function ga(){return Date.now()||+new Date}
function ga(a,b,c){b||q((c?c+": ":"")+a)}function q(a){window&&window.alert(a)}function ha(a){var b=!1;window&&(b=window.confirm(a));return b}function ja(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<ca.length;b++){var d=ca[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ka(a){if(void 0!==a){var b;for(b=0;b<ca.length;b++)if(ca[b].id===a)return ca[b]}return null} function ha(a,b,c){b||p((c?c+": ":"")+a)}function p(a){window&&window.alert(a)}function ia(a){var b=!1;window&&(b=window.confirm(a));return b}function ka(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<da.length;b++){var d=da[b];a&&d.id.indexOf(a)||c.push(d)}return c}function la(a){if(void 0!==a){var b;for(b=0;b<da.length;b++)if(da[b].id===a)return da[b]}return null}
function la(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<ca.length;d++)if(c)c==ca[d]&&(c=null);else if(!(a!=ca[d].type||b&&ca[d].id.indexOf(b)))return ca[d]}return null}function na(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b} function ma(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<da.length;d++)if(c)c==da[d]&&(c=null);else if(!(a!=da[d].type||b&&da[d].id.indexOf(b)))return da[d]}return null}function oa(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){p(c.message+" ("+a+")")}return b}
function oa(a,b){b=pa(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pc8080-binding":(g=na(f))&&g.binding&&a.ca(g.type,g.binding,f,g.value),l=h.length}}}} function pa(a,b){b=qa(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pc8080-binding":(g=oa(f))&&g.binding&&a.ca(g.type,g.binding,f,g.value),l=h.length}}}}
function pa(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}k=n.prototype;k.toString=function(){return this.name?this.name:this.id||this.type}; function qa(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}k=n.prototype;k.toString=function(){return this.name?this.name:this.id||this.type};
k.ca=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ta=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.ab)}),!0;default:return!1}};k.log=function(){};k.i=function(){}; k.ca=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ta=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.cb)}),!0;default:return!1}};k.log=function(){};k.i=function(){};
k.status=function(a){this.i(this.ab+": "+a)};k.aa=function(a,b,c){ga(a,b,c||this.type)};function qa(a,b){a.G.error=!0;a.aa(b)}function ra(a,b){b&&(a.G.ready?b():a.wb=b);return a.G.ready}function sa(a){if(!a.G.error&&(a.G.ready=!0,a.G.ready)){var b=a.wb;a.wb=null;b&&b()}}function ua(a,b){a.G.kb&&(b?a.G.Fb=!0:void 0===b&&a.i(a.toString()+" busy"));return a.G.kb}function va(a,b){if(a.G.Fb)return a.G.kb=!1,a.G.Fb=!1;if(a.G.error)return a.i(a.toString()+" error"),!1;a.G.kb=b;return a.G.kb} k.status=function(a){this.i(this.cb+": "+a)};k.aa=function(a,b,c){ha(a,b,c||this.type)};function ra(a,b){a.G.error=!0;a.aa(b)}function sa(a,b){b&&(a.G.ready?b():a.zb=b);return a.G.ready}function ta(a){if(!a.G.error&&(a.G.ready=!0,a.G.ready)){var b=a.zb;a.zb=null;b&&b()}}function va(a,b){a.G.mb&&(b?a.G.Ib=!0:void 0===b&&a.i(a.toString()+" busy"));return a.G.mb}function wa(a,b){if(a.G.Ib)return a.G.mb=!1,a.G.Ib=!1;if(a.G.error)return a.i(a.toString()+" error"),!1;a.G.mb=b;return a.G.mb}
k.va=function(){return this.G.ja=!0};k.ua=function(a,b){b&&(this.G.ja=!1);return!0};function wa(a,b){if(a.K){a===a.K?b|=0:b=b||a.ha;var c=a.K.ha&b;return!!b&&c===b||!!(c&a.K.ud)}return!1}function xa(a,b){a.K&&wa(a,0)&&a.K.message(b,void 0)}function v(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),za(a.K,a,b,c,d,e,f,g))}window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[])); k.va=function(){return this.G.ja=!0};k.ua=function(a,b){b&&(this.G.ja=!1);return!0};function xa(a,b){if(a.K){a===a.K?b|=0:b=b||a.ha;var c=a.K.ha&b;return!!b&&c===b||!!(c&a.K.wd)}return!1}function ya(a,b){a.K&&xa(a,0)&&a.K.message(b,void 0)}function q(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Aa(a.K,a,b,c,d,e,f,g))}window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));
var ea=window?window.PCjs.Machines:{},ca=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}); var fa=window?window.PCjs.Machines:{},da=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b}); Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
function Ba(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&& function Ca(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function Ca(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}function x(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function Da(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}function t(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}
function Da(a){return x(a,2,!0)}function y(a){return x(a,4,!0)}function Ea(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function Fa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Ga(){var a=Ha();return-1!==a.indexOf("pcjs.org",a.length-8)}function Ia(a){return a.replace(/[&<>"']/g,function(a){return Ja[a]})}function Ka(a,b){return(a+" ").slice(0,b)} function Ea(a){return t(a,2,!0)}function x(a){return t(a,4,!0)}function Fa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function Ga(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Ha(){var a=Ia();return-1!==a.indexOf("pcjs.org",a.length-8)}function Ja(a){return a.replace(/[&<>"']/g,function(a){return Ka[a]})}function La(a,b){return(a+" ").slice(0,b)}
function Na(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ja={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Oa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; function Oa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ka={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Pa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
function Pa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function Qa(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} function Qa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function Ra(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ra(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1} function Sa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function Sa(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a, function Ta(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",p;for(p in b)b.hasOwnProperty(p)&&(l&&(l+="&"),l+=p+"="+encodeURIComponent(b[p]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g} f,e))});if(b&&"object"==typeof b){var l="",r;for(r in b)b.hasOwnProperty(r)&&(l&&(l+="&"),l+=r+"="+encodeURIComponent(b[r]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ta(a,b){var c,d={ma:null,ra:null,Qa:null,Ia:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ia=g.exec;if(e=g.bytes)d.ma=e;else if(e=g.words)for(d.ma=Array(2*e.length),f=c=0;c<e.length;c++)d.ma[f++]=e[c]&255,d.ma[f++]=e[c]>>8&255;else if(e=g.data)for(d.ma=Array(4*e.length),f=c=0;c<e.length;c++)d.ma[f++]= function Ua(a,b){var c,d={ma:null,ra:null,Qa:null,Ia:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ia=g.exec;if(e=g.bytes)d.ma=e;else if(e=g.words)for(d.ma=Array(2*e.length),f=c=0;c<e.length;c++)d.ma[f++]=e[c]&255,d.ma[f++]=e[c]>>8&255;else if(e=g.data)for(d.ma=Array(4*e.length),f=c=0;c<e.length;c++)d.ma[f++]=
e[c]&255,d.ma[f++]=e[c]>>8&255,d.ma[f++]=e[c]>>16&255,d.ma[f++]=e[c]>>24&255;else d.ma=g;d.ra=g.symbols;d.ma.length?1==d.ma.length&&(q(d.ma[0]),d=null):(q("Empty resource: "+a),d=null)}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ma=e)}return d} e[c]&255,d.ma[f++]=e[c]>>8&255,d.ma[f++]=e[c]>>16&255,d.ma[f++]=e[c]>>24&255;else d.ma=g;d.ra=g.symbols;d.ma.length?1==d.ma.length&&(p(d.ma[0]),d=null):(p("Empty resource: "+a),d=null)}catch(h){p("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){p("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ma=e)}return d}
function Ha(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ua(){return window?window.navigator.userAgent:""}function Va(){if(null==Wa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Wa=a}return Wa}function $a(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} function Ia(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Va(){return window?window.navigator.userAgent:""}function Wa(){if(null==Xa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Xa=a}return Xa}function Ya(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function ab(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function bb(a){if(window){var b=Ua();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}function cb(a){if(!db){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}db=c}return db[a]} function bb(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function cb(a){if(window){var b=Va();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}function db(a){if(!eb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}eb=c}return eb[a]}
function eb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}function fb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function gb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}} function fb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}function gb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function hb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}
function hb(a){ib.init.push(a)}function kb(a){if(lb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){ga("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function mb(a){!lb&&a?(lb=!0,nb&&ob("init"),pb&&ob("show")):lb=a}function ob(a){ib[a]&&kb(ib[a])}var db=null,ib={init:[],show:[],exit:[]},nb=!1,pb=!1,lb=!0,Wa=null;gb("onload",function(){nb=!0;kb(ib.init)});gb("onpageshow",function(){pb=!0;kb(ib.show)}); function ib(a){jb.init.push(a)}function kb(a){if(lb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){ha("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function nb(a){!lb&&a?(lb=!0,ob&&pb("init"),qb&&pb("show")):lb=a}function pb(a){jb[a]&&kb(jb[a])}var eb=null,jb={init:[],show:[],exit:[]},ob=!1,qb=!1,lb=!0,Xa=null;hb("onload",function(){ob=!0;kb(jb.init)});hb("onpageshow",function(){qb=!0;kb(jb.show)});
gb(bb("Opera")||bb("iOS")?"onunload":"onbeforeunload",function(){kb(ib.exit)}); hb(cb("Opera")||cb("iOS")?"onunload":"onbeforeunload",function(){kb(jb.exit)});
var qb="undefined"!==typeof ArrayBuffer,rb=[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, var rb="undefined"!==typeof ArrayBuffer,sb=[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],tb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){n.call(this,"Panel",a)}ba(ub,n); 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],tb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function vb(a){n.call(this,"Panel",a)}aa(vb,n);
ub.prototype.ca=function(a,b,c,d){return this.R&&this.R.ca(a,b,c,d)||this.u&&this.u.ca(a,b,c,d)||this.B&&this.B.ca(a,b,c,d)||this.K&&this.K.ca(a,b,c,d)?!0:n.prototype.ca.call(this,a,b,c,d)};ub.prototype.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=vb(a,"Keyboard")};ub.prototype.va=function(a,b){b||wb();return!0};ub.prototype.ua=function(){return!0}; vb.prototype.ca=function(a,b,c,d){return this.R&&this.R.ca(a,b,c,d)||this.u&&this.u.ca(a,b,c,d)||this.B&&this.B.ca(a,b,c,d)||this.K&&this.K.ca(a,b,c,d)?!0:n.prototype.ca.call(this,a,b,c,d)};vb.prototype.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=wb(a,"Keyboard")};vb.prototype.va=function(a,b){b||xb();return!0};vb.prototype.ua=function(){return!0};
function wb(){for(var a=!1,b=pa(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=na(d),f=ka(e.id);f||(a=!0,f=new ub(e));oa(f,d);a&&sa(f)}}hb(wb); function xb(){for(var a=!1,b=qa(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=oa(d),f=la(e.id);f||(a=!0,f=new vb(e));pa(f,d);a&&ta(f)}}ib(xb);
function xb(a,b,c){n.call(this,"Bus",a);this.u=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.w=1<<this.g;this.O=this.w>>2;this.j=this.w-1;this.L=this.N/this.w|0;this.I=this.L-1;this.A=[];this.B=[];this.D=this.F=!1;this.S=[];this.T=[];a=new z;yb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;sa(this)}ba(xb,n);xb.prototype.reset=function(){}; function yb(a,b,c){n.call(this,"Bus",a);this.u=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.w=1<<this.g;this.O=this.w>>2;this.j=this.w-1;this.L=this.N/this.w|0;this.I=this.L-1;this.A=[];this.B=[];this.D=this.F=!1;this.S=[];this.T=[];a=new z;zb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;ta(this)}aa(yb,n);yb.prototype.reset=function(){};
xb.prototype.va=function(a,b){b||this.reset();return!0};function zb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],l=g*a.w,p=a.w-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.nb+=h.J-e,h.J=e,!0;if(e>=h.J+h.nb){p=h.size-(e-l);p>f&&(p=f);h.nb=e-h.J+p;e=l+a.w;f-=p;g++;continue}}return Ab(Bb,e,f)}e=new z(e,p,a.w,d);yb(e,a.K,h);a.b[g++]=e;e=l+a.w;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Cb[d]+" at "+y(b)),!0):Ab(Db,b,c)} yb.prototype.va=function(a,b){b||this.reset();return!0};function Ab(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],l=g*a.w,r=a.w-(e-l);r>f&&(r=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.pb+=h.J-e,h.J=e,!0;if(e>=h.J+h.pb){r=h.size-(e-l);r>f&&(r=f);h.pb=e-h.J+r;e=l+a.w;f-=r;g++;continue}}return Bb(Cb,e,f)}e=new z(e,r,a.w,d);zb(e,a.K,h);a.b[g++]=e;e=l+a.w;f-=r}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Db[d]+" at "+x(b)),!0):Bb(Eb,b,c)}
function Eb(a,b){return a.b[(b&a.C)>>>a.g].mb(b&a.j,b)}function Fb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].lc(c,b):a.b[d++].Xa(c,b)|a.b[d&a.I].Xa(0,b+1)<<8}function Gb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Kb(c,b):a.b[d++].mb(c,b)|a.b[d&a.I].mb(0,b+1)<<8}function Hb(a,b,c){a.b[(b&a.C)>>>a.g].ob(b&a.j,c&255,b)}function Ib(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].oc(d,c&65535,b):(a.b[e++].Za(d,c&255,b),a.b[e&a.I].Za(0,c>>8&255,b+1))} function Fb(a,b){return a.b[(b&a.C)>>>a.g].ob(b&a.j,b)}function Gb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Hc(c,b):a.b[d++].Ya(c,b)|a.b[d&a.I].Ya(0,b+1)<<8}function Hb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Nb(c,b):a.b[d++].ob(c,b)|a.b[d&a.I].ob(0,b+1)<<8}function Ib(a,b,c){a.b[(b&a.C)>>>a.g].qb(b&a.j,c&255,b)}function Jb(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Kc(d,c&65535,b):(a.b[e++].$a(d,c&255,b),a.b[e&a.I].$a(0,c>>8&255,b+1))}
function Jb(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ca||e.hc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function Mb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]} function Kb(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ca||e.Dc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var r=e[g],u=g+1;u<e.length&&e[u]===r;)u++;l[h++]=u-g;l[h++]=r;g=u}l.length<e.length&&(e=l)}c[f]=e}}return c}function Lb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function Nb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.A[l]?q("Input port "+y(l)+" already registered"):f.A[l]=[h,!1]}}function Ob(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.S[b]||1,l=1==h?255:2==h?65535:-1,p=l;void 0!==g?(g[0]&&(p=g[0](b,c),void 0===p?p=l:p&=l),a.K&&a.D!=g[1]&&Pb(a.K,b,p)):a.K&&(za(a.K,a,b,null,c),a.D&&Pb(a.K,b,p));e|=p<<f;f+=h<<3;b+=h;d-=h}return e} function Ob(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.A[l]?p("Input port "+x(l)+" already registered"):f.A[l]=[h,!1]}}function Pb(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.S[b]||1,l=1==h?255:2==h?65535:-1,r=l;void 0!==g?(g[0]&&(r=g[0](b,c),void 0===r?r=l:r&=l),a.K&&a.D!=g[1]&&Qb(a.K,b,r)):a.K&&(Aa(a.K,a,b,null,c),a.D&&Qb(a.K,b,r));e|=r<<f;f+=h<<3;b+=h;d-=h}return e}
function Qb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Rb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.B[l]?q("Output port "+y(l)+" already registered"):f.B[l]=[h,!1]}} function Rb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Sb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.B[l]?p("Output port "+x(l)+" already registered"):f.B[l]=[h,!1]}}
function Sb(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.B[b],h=a.T[b]||1,l=1==h?255:2==h?65535:-1,l=(c>>>=f)&l;if(void 0!==g){if(g[0])g[0](b,l,d);a.K&&a.F!=g[1]&&Tb(a.K,b,l)}else a.K&&(za(a.K,a,b,l,d),a.F&&Tb(a.K,b,l));f+=h<<3;b+=h;e-=h}}function Ab(a,b,c){q("Memory block error ("+a+": "+x(b)+","+x(c)+")");return!1}var Bb=1,Db=2,Ub;if(qb){var Vb=new ArrayBuffer(2);(new DataView(Vb)).setUint16(0,256,!0);Ub=256===(new Uint16Array(Vb))[0]}else Ub=!1;var Wb=Ub; function Tb(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.B[b],h=a.T[b]||1,l=1==h?255:2==h?65535:-1,l=(c>>>=f)&l;if(void 0!==g){if(g[0])g[0](b,l,d);a.K&&a.F!=g[1]&&Ub(a.K,b,l)}else a.K&&(Aa(a.K,a,b,l,d),a.F&&Ub(a.K,b,l));f+=h<<3;b+=h;e-=h}}function Bb(a,b,c){p("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Cb=1,Eb=2,Vb;if(rb){var Wb=new ArrayBuffer(2);(new DataView(Wb)).setUint16(0,256,!0);Vb=256===(new Uint16Array(Wb))[0]}else Vb=!1;var Xb=Vb;
function z(a,b,c,d){this.id=Xb+=2;this.b=null;this.J=a;this.nb=b;this.size=c||0;this.type=d||Yb;this.u=d==Zb;yb(this);this.Ca=this.hc=!1;if(c)if(qb)this.j=new ArrayBuffer(c),this.R=new DataView(this.j,0,c),this.g=new Uint8Array(this.j,0,c),this.w=new Uint16Array(this.j,0,c>>1),this.b=new Int32Array(this.j,0,c>>2),$b(this,Wb?ac:bc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;$b(this,dc)}else $b(this)}k=z.prototype; function z(a,b,c,d){this.id=Yb+=2;this.b=null;this.J=a;this.pb=b;this.size=c||0;this.type=d||Zb;this.u=d==$b;zb(this);this.Ca=this.Dc=!1;if(c)if(rb)this.j=new ArrayBuffer(c),this.R=new DataView(this.j,0,c),this.g=new Uint8Array(this.j,0,c),this.w=new Uint16Array(this.j,0,c>>1),this.b=new Int32Array(this.j,0,c>>2),ac(this,Xb?bc:cc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;ac(this,dc)}else ac(this)}k=z.prototype;
k.save=function(){var a,b;if(qb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.R.getInt32(b<<2,!0);else a=this.b;return a};k.restore=function(a){if(a&&this.size==a.length<<2){var b;if(qb)for(b=0;b<a.length;b++)this.R.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ca=!0}return!1};function $b(a,b){b||(b=ec);fc(a,b,void 0);gc(a,b,void 0)}function fc(a,b,c){c&&a.H||(a.Xa=b[0]||a.kc,a.lc=b[2]||a.mc);if(c||void 0===c)a.mb=b[0]||a.kc,a.Kb=b[2]||a.mc} k.save=function(){var a,b;if(rb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.R.getInt32(b<<2,!0);else a=this.b;return a};k.restore=function(a){if(a&&this.size==a.length<<2){var b;if(rb)for(b=0;b<a.length;b++)this.R.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ca=!0}return!1};function ac(a,b){b||(b=fc);gc(a,b,void 0);hc(a,b,void 0)}function gc(a,b,c){c&&a.H||(a.Ya=b[0]||a.Gc,a.Hc=b[2]||a.Ic);if(c||void 0===c)a.ob=b[0]||a.Gc,a.Nb=b[2]||a.Ic}
function gc(a,b,c){c&&a.P||(a.Za=!a.u&&b[1]||a.pb,a.oc=!a.u&&b[3]||a.Ob);if(c||void 0===c)a.ob=b[1]||a.pb,a.Pb=b[3]||a.Ob}k.Pa=function(a,b){b?this.P++||gc(this,qc,!1):this.H++||fc(this,qc,!1)};function rc(a,b){b?--a.P||(a.Za=a.u?a.pb:a.ob,a.oc=a.u?a.Ob:a.Pb):--a.H||(a.Xa=a.mb,a.lc=a.Kb)}function yb(a,b,c){a.K=b;a.H=a.P=0;c&&((a.H=c.H)&&fc(a,qc,!1),(a.P=c.P)&&gc(a,qc,!1))}k.kc=function(){this.K&&wa(this.K,129)&&this.K.message("attempt to read invalid block %"+x(this.J),!0);return 255}; function hc(a,b,c){c&&a.P||(a.$a=!a.u&&b[1]||a.rb,a.Kc=!a.u&&b[3]||a.Rb);if(c||void 0===c)a.qb=b[1]||a.rb,a.Sb=b[3]||a.Rb}k.Pa=function(a,b){b?this.P++||hc(this,ic,!1):this.H++||gc(this,ic,!1)};function sc(a,b){b?--a.P||(a.$a=a.u?a.rb:a.qb,a.Kc=a.u?a.Rb:a.Sb):--a.H||(a.Ya=a.ob,a.Hc=a.Nb)}function zb(a,b,c){a.K=b;a.H=a.P=0;c&&((a.H=c.H)&&gc(a,ic,!1),(a.P=c.P)&&hc(a,ic,!1))}k.Gc=function(){this.K&&xa(this.K,129)&&this.K.message("attempt to read invalid block %"+t(this.J),!0);return 255};
k.pb=function(a,b){this.K&&wa(this.K,129)&&this.K.message("attempt to write "+y(b)+" to invalid block %"+x(this.J),!0)};k.mc=function(a,b){return this.Xa(a++,b++)|this.Xa(a,b)<<8};k.Ob=function(a,b,c){this.Za(a++,b&255,c++);this.Za(a,b>>8,c)};k.Yd=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};k.be=function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8};k.ge=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ca=!0}; k.rb=function(a,b){this.K&&xa(this.K,129)&&this.K.message("attempt to write "+x(b)+" to invalid block %"+t(this.J),!0)};k.Ic=function(a,b){return this.Ya(a++,b++)|this.Ya(a,b)<<8};k.Rb=function(a,b,c){this.$a(a++,b&255,c++);this.$a(a,b>>8,c)};k.ie=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};k.me=function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8};k.ve=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ca=!0};
k.ke=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ca=!0};k.Wd=function(a,b){if(this.K&&null!=this.J){var c=this.K;sc(c,this.J+a,1,c.I)&&c.da(!0)}return this.mb(a,b)};k.$d=function(a,b){if(this.K&&null!=this.J){var c=this.K;sc(c,this.J+a,2,c.I)&&c.da(!0)}return this.Kb(a,b)}; k.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ca=!0};k.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;tc(c,this.J+a,1,c.I)&&c.da(!0)}return this.ob(a,b)};k.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;tc(c,this.J+a,2,c.I)&&c.da(!0)}return this.Nb(a,b)};
k.ee=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;sc(d,this.J+a,1,d.w)&&d.da(!0)}this.u?this.pb(0,b):this.ob(a,b,c)};k.ie=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;sc(d,this.J+a,2,d.w)&&d.da(!0)}this.u?this.pb(0,b):this.Pb(a,b,c)};k.Vd=function(a){return this.g[a]};k.Xd=function(a){return this.g[a]};k.Zd=function(a){return this.R.getUint16(a,!0)};k.ae=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};k.de=function(a,b){this.g[a]=b;this.Ca=!0}; k.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;tc(d,this.J+a,1,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};k.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;tc(d,this.J+a,2,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};k.fe=function(a){return this.g[a]};k.he=function(a){return this.g[a]};k.je=function(a){return this.R.getUint16(a,!0)};k.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};k.se=function(a,b){this.g[a]=b;this.Ca=!0};
k.fe=function(a,b){this.g[a]=b;this.Ca=!0};k.he=function(a,b){this.R.setUint16(a,b,!0);this.Ca=!0};k.je=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ca=!0};var Yb=0,Zb=2,Cb=["NONE","RAM","ROM","VID","H/W"],Xb=0,ec=[],dc=[z.prototype.Yd,z.prototype.ge,z.prototype.be,z.prototype.ke],qc=[z.prototype.Wd,z.prototype.ee,z.prototype.$d,z.prototype.ie];if(qb)var bc=[z.prototype.Vd,z.prototype.de,z.prototype.Zd,z.prototype.he],ac=[z.prototype.Xd,z.prototype.fe,z.prototype.ae,z.prototype.je]; k.ue=function(a,b){this.g[a]=b;this.Ca=!0};k.we=function(a,b){this.R.setUint16(a,b,!0);this.Ca=!0};k.ye=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ca=!0};var Zb=0,$b=2,Db=["NONE","RAM","ROM","VID","H/W"],Yb=0,fc=[],dc=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze],ic=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe];if(rb)var cc=[z.prototype.fe,z.prototype.se,z.prototype.je,z.prototype.we],bc=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];
function tc(a,b){n.call(this,"CPU",a,1);var c=a.multiplier||1;this.Fa=a.cycles||b;this.U=c;this.Sa=Math.round(this.Fa/1E4)/100;this.Z=this.Sa*this.U;this.G.ka=!1;this.G.Nb=!1;this.G.jb=a.autoStart;this.G.fc=!1;this.G.Va=!1;this.ya=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Ab=this.rb.bind(this);sa(this)}ba(tc,n);k=tc.prototype; function uc(a,b){n.call(this,"CPU",a,1);var c=a.multiplier||1;this.Fa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Fa/1E4)/100;this.Z=this.Ta*this.U;this.G.ka=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.ya=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);ta(this)}aa(uc,n);k=uc.prototype;
k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<uc.length;b++)(c=this.P[uc[b]])&&this.R.ca(null,uc[b],c);this.W=vb(a,"ChipSet");a=vc(a,"autoStart");null!=a&&(this.G.jb="true"==a?!0:"false"==a?!1:!!a);sa(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1}; k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<vc.length;b++)(c=this.P[vc[b]])&&this.R.ca(null,vc[b],c);this.W=wb(a,"ChipSet");a=wc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);ta(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.va=function(a,b){if(!b){if(a&&this.restore){wc(this);if(!this.restore(a))return!1;xc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),yc(a),a.ea&&(b=a.ea,a.ea=null,zc(a,b))):this.i("No debugger detected")}Ac(this);return!0};k.ua=function(a){return a?this.save():!0};k.jb=function(){return this.G.jb||!this.K&&void 0===this.P.run?(this.rb(),!0):!1};k.ic=function(){return 0}; k.va=function(a,b){if(!b){if(a&&this.restore){xc(this);if(!this.restore(a))return!1;yc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),zc(a),a.ea&&(b=a.ea,a.ea=null,Ac(a,b))):this.i("No debugger detected")}Bc(this);return!0};k.ua=function(a){return a?this.save():!0};k.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};k.Ec=function(){return 0};
function xc(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Va=0<=a.za&&0<a.na;a.G.Va&&(a.ya=0,a.oa=a.za-a.la)}function Bc(a,b){if(a.G.Va){var c=!1;a.ya=a.ya+a.ic()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Cc(a)&&(a.na=a.sa=-1,xc(a),a.da(),c=!0);c&&a.i(Cc(a)+" cycles: checksum="+x(a.ya))}} function yc(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.za&&0<a.na;a.G.Wa&&(a.ya=0,a.oa=a.za-a.la)}function Cc(a,b){if(a.G.Wa){var c=!1;a.ya=a.ya+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Dc(a)&&(a.na=a.sa=-1,yc(a),a.da(),c=!0);c&&a.i(Dc(a)+" cycles: checksum="+t(a.ya))}}
k.ca=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=ja(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.wb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ka?d.da():d.rb())}; k.ca=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=ka(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);p("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ka?d.da():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Dc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Ec(a,b,c){a.la+=b;c&&(a.ga=a.b=0)}function Fc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Sa);a.hb=Math.round(1E3/Gc);a.Na=Math.floor(a.Fa/Gc*c);b||(a.wa=a.Na);a.Ua=0}function Cc(a){return a.la+a.X+a.ga-a.b}function wc(a){a.Y=0;a.ib=0;a.la=a.X=a.ga=a.b=0;xc(a);Dc(a,1)} a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Ec(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Fc(a,b,c){a.la+=b;c&&(a.ga=a.b=0)}function Gc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Hc);a.Na=Math.floor(a.Fa/Hc*c);b||(a.wa=a.Na);a.Va=0}function Dc(a){return a.la+a.X+a.ga-a.b}function xc(a){a.Y=0;a.kb=0;a.la=a.X=a.ga=a.b=0;yc(a);Ec(a,1)}
function Dc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Sa*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Ya()}Ec(a,a.X);a.X=0;a.V=fa();a.ea=0;Fc(a);return d}function Hc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Ic(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Fa*a.U/1E3,a.T[b][0]=c+Jc(a))}function Jc(a,b){var c=a.ga-=a.b;a.b=0;b&&(a.ga=0);return c} function Ec(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Fc(a,a.X);a.X=0;a.V=ga();a.ea=0;Gc(a);return d}function Ic(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Jc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Fa*a.U/1E3,a.T[b][0]=c+Kc(a))}function Kc(a,b){var c=a.ga-=a.b;a.b=0;b&&(a.ga=0);return c}
k.rb=function(a){if(va(this,!0)){if(!this.G.ka){Dc(this);this.R&&this.R.start(this.V,Cc(this));this.G.ka=!0;this.G.Nb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Kc(this.R,!0),a&&this.R.Ya(!0))}this.Ua>=this.Fa&&Fc(this,!0);this.Ha=0;this.Ma=fa();this.ea&&(a=this.Ma-this.ea,a>this.hb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Va?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Bb(c);c=Jc(this,!0); k.tb=function(a){if(wa(this,!0)){if(!this.G.ka){Ec(this);this.R&&this.R.start(this.V,Dc(this));this.G.ka=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Lc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Fa&&Gc(this,!0);this.Ha=0;this.Ma=ga();this.ea&&(a=this.Ma-this.ea,a>this.jb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Kc(this,!0);
this.Ha+=c;this.X+=c;Bc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.wa-=c;if(0>=this.wa){this.wa+=this.Na;++this.ib>=Lc&&(this.R&&Kc(this.R),this.ib=0);break}}while(this.G.ka)}catch(l){this.da();Ac(this);this.R&&this.R.stop(fa(),Cc(this));va(this,!1);qa(this,l.stack||l.message);return}c=setTimeout;d=this.Ab;this.ea=fa();e=this.hb;this.Ha&&(e=Math.round(e*this.Ha/this.Na));e-=this.ea-this.Ma;if(f=this.ea-this.V)this.Y=Math.round(this.X/ this.Ha+=c;this.X+=c;Cc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.wa-=c;if(0>=this.wa){this.wa+=this.Na;++this.kb>=Mc&&(this.R&&Lc(this.R),this.kb=0);break}}while(this.G.ka)}catch(l){this.da();Bc(this);this.R&&this.R.stop(ga(),Dc(this));wa(this,!1);ra(this,l.stack||l.message);return}c=setTimeout;d=this.Db;this.ea=ga();e=this.jb;this.Ha&&(e=Math.round(e*this.Ha/this.Na));e-=this.ea-this.Ma;if(f=this.ea-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.la=0,Dc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Ua+=this.Ha;this.ea+=e;c(d,e)}else Ac(this),this.R&&this.R.stop(fa(),Cc(this))};k.Bb=function(){return 0};k.da=function(a){ua(this,!0);Jc(this);Ec(this,this.X);this.X=0;if(this.G.ka){this.G.ka=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Ac(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)Mc(c.A[d],b);Kc(a.R,b)}}var Gc=30,Lc=15,uc=["power","reset"]; (10*f))/100,864E5<=f&&(this.la=0,Ec(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Ha;this.ea+=e;c(d,e)}else Bc(this),this.R&&this.R.stop(ga(),Dc(this))};k.Eb=function(){return 0};k.da=function(a){va(this,!0);Kc(this);Fc(this,this.X);this.X=0;if(this.G.ka){this.G.ka=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Bc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)Nc(c.A[d],b);Lc(a.R,b)}}var Hc=30,Mc=15,vc=["power","reset"];
function Nc(a){var b=+a.model||8080;tc.call(this,a,1E6);this.ub=b;this.eb=Oc;wc(this);this.G.complete=this.G.wd=!1;this.gb=0;this.La=[];this.fb=0;Pc(this)}ba(Nc,tc);function Qc(a,b){a.La.push(b)}k=Nc.prototype;k.reset=function(){this.G.ka&&this.da();Pc(this);wc(this);this.G.error=!1;tc.prototype.reset.call(this)};function Pc(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;C(a,a.fb);Rc(a,0);a.S=0}function Sc(a,b){a.fb=b;C(a,b)} function Oc(a){var b=+a.model||8080;uc.call(this,a,1E6);this.xb=b;this.gb=Pc;xc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.La=[];this.hb=0;Qc(this)}aa(Oc,uc);function Rc(a,b){a.La.push(b)}k=Oc.prototype;k.reset=function(){this.G.ka&&this.da();Qc(this);xc(this);this.G.error=!1;uc.prototype.reset.call(this)};function Qc(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);Sc(a,0);a.S=0}function Tc(a,b){a.hb=b;A(a,b)}
k.ic=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+Tc(this)|0};k.save=function(){var a=new Uc(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,Tc(this)]);a.set(1,[this.S,this.la,this.U]);a.set(2,Jb(this.H));return a.data()}; k.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+Uc(this)|0};k.save=function(){var a=new Vc(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,Uc(this)]);a.set(1,[this.S,this.la,this.U]);a.set(2,Kb(this.H));return a.data()};
k.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;C(this,b[8]);Rc(this,b[9]);b=a[1];this.S=b[0];this.la=b[1];Dc(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var l=e[h++],p=e[h++];l--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; k.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);Sc(this,b[9]);b=a[1];this.S=b[0];this.la=b[1];Ec(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var l=e[h++],r=e[h++];l--;)g[f++]=r;e=g}f=b.b[d];if(!f||!f.restore(e)){p("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.ca=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.P[b]=c;this.gb++;a=!0;break;default:a=tc.prototype.ca.call(this,a,b,c)}return a};function Vc(a){return a.w<<8|a.A}function hd(a,b){a.w=b>>8&255;a.A=b&255}function id(a){return a.B<<8|a.C}function jd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F} k.ca=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.P[b]=c;this.ib++;a=!0;break;default:a=uc.prototype.ca.call(this,a,b,c)}return a};function Wc(a){return a.w<<8|a.A}function id(a,b){a.w=b>>8&255;a.A=b&255}function jd(a){return a.B<<8|a.C}function kd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function kd(a,b){a.D=b>>8&255;a.F=b&255}function C(a,b){a.j=b&65535}function ld(a){return a.I&256?1:0}function md(a,b){a.I=a.I&255|b}function nd(a){return rb[a.L&255]?4:0}function od(a){return(a.L^a.O)&16?16:0}function pd(a){return a.I&255?0:64}function qd(a){return a.L&128?128:0}function Tc(a){return a.N&-214|qd(a)|pd(a)|od(a)|nd(a)|ld(a)}function Rc(a,b){a.I=a.L=a.O=0;b&1&&(a.I|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.I|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2} function ld(a,b){a.D=b>>8&255;a.F=b&255}function A(a,b){a.j=b&65535}function md(a){return a.I&256?1:0}function nd(a,b){a.I=a.I&255|b}function od(a){return sb[a.L&255]?4:0}function pd(a){return(a.L^a.O)&16?16:0}function qd(a){return a.I&255?0:64}function rd(a){return a.L&128?128:0}function Uc(a){return a.N&-214|rd(a)|qd(a)|pd(a)|od(a)|md(a)}function Sc(a,b){a.I=a.L=a.O=0;b&1&&(a.I|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.I|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
function rd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b)&255}function sd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?1:0))&255}function td(a,b){a.I=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.I}function ud(a,b){a.O=b^255;b=a.L=b+255&255;a.I=a.I&-256|b;return b}function vd(a,b){a.O=b;b=a.L=b+1&255;a.I=a.I&-256|b;return b}function wd(a,b){return a.L=a.I=a.O=a.g|b}function E(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+1^256)&255} function sd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b)&255}function td(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?1:0))&255}function ud(a,b){a.I=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.I}function vd(a,b){a.O=b^255;b=a.L=b+255&255;a.I=a.I&-256|b;return b}function wd(a,b){a.O=b;b=a.L=b+1&255;a.I=a.I&-256|b;return b}function xd(a,b){return a.L=a.I=a.O=a.g|b}function yd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+1^256)&255}
function xd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?0:1)^256)&255}function yd(a,b){return a.L=a.I=a.O=a.g^b}function F(a,b){a=a.H;return a.b[(b&a.C)>>>a.g].Xa(b&a.j,b)}function zd(a,b,c){a=a.H;a.b[(b&a.C)>>>a.g].Za(b&a.j,c&255,b)}function G(a){var b=F(a,a.j);C(a,a.j+1);return b}function H(a){var b=Fb(a.H,a.j);C(a,a.j+2);return b}function Ad(a){var b=Fb(a.H,a.M);a.M=a.M+2&65535;return b}function I(a,b){a.M=a.M-2&65535;Ib(a.H,a.M,b)} function zd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?0:1)^256)&255}function Ad(a,b){return a.L=a.I=a.O=a.g^b}function E(a,b){a=a.H;return a.b[(b&a.C)>>>a.g].Ya(b&a.j,b)}function Bd(a,b,c){a=a.H;a.b[(b&a.C)>>>a.g].$a(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);A(a,a.j+1);return b}function G(a){var b=Gb(a.H,a.j);A(a,a.j+2);return b}function Cd(a){var b=Gb(a.H,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Jb(a.H,a.M,b)}
function Bd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.eb[199|b<<3].call(a)}return a.S&256?(Jc(a),!1):!0}function Cd(a,b){a.S|=1<<b;a.N&512&&Jc(a)}function J(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(qa(a,"Value for "+b+" is invalid"),a.da()),c=!a.G.ka||a.G.fc?x(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))} function Dd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Kc(a),!1):!0}function Ed(a,b){a.S|=1<<b;a.N&512&&Kc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(ra(a,"Value for "+b+" is invalid"),a.da()),c=!a.G.ka||a.G.Bc?t(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
k.Bb=function(a){this.G.complete=!0;var b=this.G.wd=this.K&&Dd(this.K),c=a?this.G.Nb?0:1:-1;this.G.Nb=!1;this.ga=this.b=a;if(Bd(this)){do{if(b){if(Ed(this.K,this.j,c)){this.da();break}c=1}this.eb[G(this)].call(this)}while(0<this.b)}return this.G.complete?this.ga-this.b:void 0===this.G.complete?0:-1};hb(function(){for(var a=pa(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=na(c),d=new Nc(d);oa(d,c)}});function Fd(){this.b-=4}function Gd(){C(this,H(this));this.b-=10} k.Eb=function(a){this.G.complete=!0;var b=this.G.zd=this.K&&Fd(this.K),c=a?this.G.Qb?0:1:-1;this.G.Qb=!1;this.ga=this.b=a;if(Dd(this)){do{if(b){if(Gd(this.K,this.j,c)){this.da();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.ga-this.b:void 0===this.G.complete?0:-1};ib(function(){for(var a=qa(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Oc(d);pa(d,c)}});function Hd(){this.b-=4}function Id(){A(this,G(this));this.b-=10}
function Hd(){C(this,Ad(this));this.b-=10}function Id(){var a=H(this);I(this,this.j);C(this,a);this.b-=17} function Jd(){A(this,Cd(this));this.b-=10}function Kd(){var a=G(this);H(this,this.j);A(this,a);this.b-=17}
var Oc=[Fd,function(){hd(this,H(this));this.b-=10},function(){zd(this,Vc(this),this.g);this.b-=7},function(){hd(this,Vc(this)+1);this.b-=5},function(){this.w=vd(this,this.w);this.b-=5},function(){this.w=ud(this,this.w);this.b-=5},function(){this.w=G(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;md(this,a&256);this.b-=4},Fd,function(){var a;kd(this,a=D(this)+Vc(this));md(this,a>>8&256);this.b-=10},function(){this.g=F(this,Vc(this));this.b-=7},function(){hd(this,Vc(this)-1);this.b-= var Pc=[Hd,function(){id(this,G(this));this.b-=10},function(){Bd(this,Wc(this),this.g);this.b-=7},function(){id(this,Wc(this)+1);this.b-=5},function(){this.w=wd(this,this.w);this.b-=5},function(){this.w=vd(this,this.w);this.b-=5},function(){this.w=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;nd(this,a&256);this.b-=4},Hd,function(){var a;ld(this,a=D(this)+Wc(this));nd(this,a>>8&256);this.b-=10},function(){this.g=E(this,Wc(this));this.b-=7},function(){id(this,Wc(this)-1);this.b-=
5},function(){this.A=vd(this,this.A);this.b-=5},function(){this.A=ud(this,this.A);this.b-=5},function(){this.A=G(this);this.b-=7},function(){var a=this.g<<8&256;this.g=(a|this.g)>>1;md(this,a);this.b-=4},Fd,function(){jd(this,H(this));this.b-=10},function(){zd(this,id(this),this.g);this.b-=7},function(){jd(this,id(this)+1);this.b-=5},function(){this.B=vd(this,this.B);this.b-=5},function(){this.B=ud(this,this.B);this.b-=5},function(){this.B=G(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255| 5},function(){this.A=wd(this,this.A);this.b-=5},function(){this.A=vd(this,this.A);this.b-=5},function(){this.A=F(this);this.b-=7},function(){var a=this.g<<8&256;this.g=(a|this.g)>>1;nd(this,a);this.b-=4},Hd,function(){kd(this,G(this));this.b-=10},function(){Bd(this,jd(this),this.g);this.b-=7},function(){kd(this,jd(this)+1);this.b-=5},function(){this.B=wd(this,this.B);this.b-=5},function(){this.B=vd(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|
ld(this);md(this,a&256);this.b-=4},Fd,function(){var a;kd(this,a=D(this)+id(this));md(this,a>>8&256);this.b-=10},function(){this.g=F(this,id(this));this.b-=7},function(){jd(this,id(this)-1);this.b-=5},function(){this.C=vd(this,this.C);this.b-=5},function(){this.C=ud(this,this.C);this.b-=5},function(){this.C=G(this);this.b-=7},function(){var a=this.g<<8;this.g=(ld(this)<<8|this.g)>>1;md(this,a&256);this.b-=4},Fd,function(){kd(this,H(this));this.b-=10},function(){var a=H(this);Ib(this.H,a,D(this)); md(this);nd(this,a&256);this.b-=4},Hd,function(){var a;ld(this,a=D(this)+jd(this));nd(this,a>>8&256);this.b-=10},function(){this.g=E(this,jd(this));this.b-=7},function(){kd(this,jd(this)-1);this.b-=5},function(){this.C=wd(this,this.C);this.b-=5},function(){this.C=vd(this,this.C);this.b-=5},function(){this.C=F(this);this.b-=7},function(){var a=this.g<<8;this.g=(md(this)<<8|this.g)>>1;nd(this,a&256);this.b-=4},Hd,function(){ld(this,G(this));this.b-=10},function(){var a=G(this);Jb(this.H,a,D(this));
this.b-=16},function(){kd(this,D(this)+1);this.b-=5},function(){this.D=vd(this,this.D);this.b-=5},function(){this.D=ud(this,this.D);this.b-=5},function(){this.D=G(this);this.b-=7},function(){var a=0,b=ld(this);if(od(this)||9<(this.g&15))a|=6;if(b||154<=this.g)a|=96,b=1;this.g=rd(this,a);md(this,b?256:0);this.b-=4},Fd,function(){var a;kd(this,a=D(this)+D(this));md(this,a>>8&256);this.b-=10},function(){var a;a=H(this);a=Fb(this.H,a);kd(this,a);this.b-=16},function(){kd(this,D(this)-1);this.b-=5},function(){this.F= this.b-=16},function(){ld(this,D(this)+1);this.b-=5},function(){this.D=wd(this,this.D);this.b-=5},function(){this.D=vd(this,this.D);this.b-=5},function(){this.D=F(this);this.b-=7},function(){var a=0,b=md(this);if(pd(this)||9<(this.g&15))a|=6;if(b||154<=this.g)a|=96,b=1;this.g=sd(this,a);nd(this,b?256:0);this.b-=4},Hd,function(){var a;ld(this,a=D(this)+D(this));nd(this,a>>8&256);this.b-=10},function(){var a;a=G(this);a=Gb(this.H,a);ld(this,a);this.b-=16},function(){ld(this,D(this)-1);this.b-=5},function(){this.F=
vd(this,this.F);this.b-=5},function(){this.F=ud(this,this.F);this.b-=5},function(){this.F=G(this);this.b-=7},function(){this.g=~this.g&255;this.b-=4},Fd,function(){this.M=H(this)&65535;this.b-=10},function(){zd(this,H(this),this.g);this.b-=13},function(){this.M=this.M+1&65535;this.b-=5},function(){var a=D(this);zd(this,a,vd(this,F(this,a)));this.b-=10},function(){var a=D(this);zd(this,a,ud(this,F(this,a)));this.b-=10},function(){zd(this,D(this),G(this));this.b-=10},function(){this.I|=256;this.b-= wd(this,this.F);this.b-=5},function(){this.F=vd(this,this.F);this.b-=5},function(){this.F=F(this);this.b-=7},function(){this.g=~this.g&255;this.b-=4},Hd,function(){this.M=G(this)&65535;this.b-=10},function(){Bd(this,G(this),this.g);this.b-=13},function(){this.M=this.M+1&65535;this.b-=5},function(){var a=D(this);Bd(this,a,wd(this,E(this,a)));this.b-=10},function(){var a=D(this);Bd(this,a,vd(this,E(this,a)));this.b-=10},function(){Bd(this,D(this),F(this));this.b-=10},function(){this.I|=256;this.b-=
4},Fd,function(){var a;kd(this,a=D(this)+this.M);md(this,a>>8&256);this.b-=10},function(){this.g=F(this,H(this));this.b-=13},function(){this.M=this.M-1&65535;this.b-=5},function(){this.g=vd(this,this.g);this.b-=5},function(){this.g=ud(this,this.g);this.b-=5},function(){this.g=G(this);this.b-=7},function(){md(this,ld(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.w=this.A;this.b-=5},function(){this.w=this.B;this.b-=5},function(){this.w=this.C;this.b-=5},function(){this.w=this.D;this.b-= 4},Hd,function(){var a;ld(this,a=D(this)+this.M);nd(this,a>>8&256);this.b-=10},function(){this.g=E(this,G(this));this.b-=13},function(){this.M=this.M-1&65535;this.b-=5},function(){this.g=wd(this,this.g);this.b-=5},function(){this.g=vd(this,this.g);this.b-=5},function(){this.g=F(this);this.b-=7},function(){nd(this,md(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.w=this.A;this.b-=5},function(){this.w=this.B;this.b-=5},function(){this.w=this.C;this.b-=5},function(){this.w=this.D;this.b-=
5},function(){this.w=this.F;this.b-=5},function(){this.w=F(this,D(this));this.b-=7},function(){this.w=this.g;this.b-=5},function(){this.A=this.w;this.b-=5},function(){this.b-=5},function(){this.A=this.B;this.b-=5},function(){this.A=this.C;this.b-=5},function(){this.A=this.D;this.b-=5},function(){this.A=this.F;this.b-=5},function(){this.A=F(this,D(this));this.b-=7},function(){this.A=this.g;this.b-=5},function(){this.B=this.w;this.b-=5},function(){this.B=this.A;this.b-=5},function(){this.b-=5},function(){this.B= 5},function(){this.w=this.F;this.b-=5},function(){this.w=E(this,D(this));this.b-=7},function(){this.w=this.g;this.b-=5},function(){this.A=this.w;this.b-=5},function(){this.b-=5},function(){this.A=this.B;this.b-=5},function(){this.A=this.C;this.b-=5},function(){this.A=this.D;this.b-=5},function(){this.A=this.F;this.b-=5},function(){this.A=E(this,D(this));this.b-=7},function(){this.A=this.g;this.b-=5},function(){this.B=this.w;this.b-=5},function(){this.B=this.A;this.b-=5},function(){this.b-=5},function(){this.B=
this.C;this.b-=5},function(){this.B=this.D;this.b-=5},function(){this.B=this.F;this.b-=5},function(){this.B=F(this,D(this));this.b-=7},function(){this.B=this.g;this.b-=5},function(){this.C=this.w;this.b-=5},function(){this.C=this.A;this.b-=5},function(){this.C=this.B;this.b-=5},function(){this.b-=5},function(){this.C=this.D;this.b-=5},function(){this.C=this.F;this.b-=5},function(){this.C=F(this,D(this));this.b-=7},function(){this.C=this.g;this.b-=5},function(){this.D=this.w;this.b-=5},function(){this.D= this.C;this.b-=5},function(){this.B=this.D;this.b-=5},function(){this.B=this.F;this.b-=5},function(){this.B=E(this,D(this));this.b-=7},function(){this.B=this.g;this.b-=5},function(){this.C=this.w;this.b-=5},function(){this.C=this.A;this.b-=5},function(){this.C=this.B;this.b-=5},function(){this.b-=5},function(){this.C=this.D;this.b-=5},function(){this.C=this.F;this.b-=5},function(){this.C=E(this,D(this));this.b-=7},function(){this.C=this.g;this.b-=5},function(){this.D=this.w;this.b-=5},function(){this.D=
this.A;this.b-=5},function(){this.D=this.B;this.b-=5},function(){this.D=this.C;this.b-=5},function(){this.b-=5},function(){this.D=this.F;this.b-=5},function(){this.D=F(this,D(this));this.b-=7},function(){this.D=this.g;this.b-=5},function(){this.F=this.w;this.b-=5},function(){this.F=this.A;this.b-=5},function(){this.F=this.B;this.b-=5},function(){this.F=this.C;this.b-=5},function(){this.F=this.D;this.b-=5},function(){this.b-=5},function(){this.F=F(this,D(this));this.b-=7},function(){this.F=this.g; this.A;this.b-=5},function(){this.D=this.B;this.b-=5},function(){this.D=this.C;this.b-=5},function(){this.b-=5},function(){this.D=this.F;this.b-=5},function(){this.D=E(this,D(this));this.b-=7},function(){this.D=this.g;this.b-=5},function(){this.F=this.w;this.b-=5},function(){this.F=this.A;this.b-=5},function(){this.F=this.B;this.b-=5},function(){this.F=this.C;this.b-=5},function(){this.F=this.D;this.b-=5},function(){this.b-=5},function(){this.F=E(this,D(this));this.b-=7},function(){this.F=this.g;
this.b-=5},function(){zd(this,D(this),this.w);this.b-=7},function(){zd(this,D(this),this.A);this.b-=7},function(){zd(this,D(this),this.B);this.b-=7},function(){zd(this,D(this),this.C);this.b-=7},function(){zd(this,D(this),this.D);this.b-=7},function(){zd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.La.length)for(var b=0;b<this.La.length;b++)if(this.La[b](a))return;this.b-=7;this.S|=256;Jc(this);this.K&&wa(this,-2147483648)?(C(this,a),this.K.da()):this.N&512||(this.K&&C(this,a), this.b-=5},function(){Bd(this,D(this),this.w);this.b-=7},function(){Bd(this,D(this),this.A);this.b-=7},function(){Bd(this,D(this),this.B);this.b-=7},function(){Bd(this,D(this),this.C);this.b-=7},function(){Bd(this,D(this),this.D);this.b-=7},function(){Bd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.La.length)for(var b=0;b<this.La.length;b++)if(this.La[b](a))return;this.b-=7;this.S|=256;Kc(this);this.K&&xa(this,-2147483648)?(A(this,a),this.K.da()):this.N&512||(this.K&&A(this,a),
this.da())},function(){zd(this,D(this),this.g);this.b-=7},function(){this.g=this.w;this.b-=5},function(){this.g=this.A;this.b-=5},function(){this.g=this.B;this.b-=5},function(){this.g=this.C;this.b-=5},function(){this.g=this.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=F(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=rd(this,this.w);this.b-=4},function(){this.g=rd(this,this.A);this.b-=4},function(){this.g=rd(this,this.B);this.b-=4},function(){this.g=rd(this, this.da())},function(){Bd(this,D(this),this.g);this.b-=7},function(){this.g=this.w;this.b-=5},function(){this.g=this.A;this.b-=5},function(){this.g=this.B;this.b-=5},function(){this.g=this.C;this.b-=5},function(){this.g=this.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=sd(this,this.w);this.b-=4},function(){this.g=sd(this,this.A);this.b-=4},function(){this.g=sd(this,this.B);this.b-=4},function(){this.g=sd(this,
this.C);this.b-=4},function(){this.g=rd(this,this.D);this.b-=4},function(){this.g=rd(this,this.F);this.b-=4},function(){this.g=rd(this,F(this,D(this)));this.b-=7},function(){this.g=rd(this,this.g);this.b-=4},function(){this.g=sd(this,this.w);this.b-=4},function(){this.g=sd(this,this.A);this.b-=4},function(){this.g=sd(this,this.B);this.b-=4},function(){this.g=sd(this,this.C);this.b-=4},function(){this.g=sd(this,this.D);this.b-=4},function(){this.g=sd(this,this.F);this.b-=4},function(){this.g=sd(this, this.C);this.b-=4},function(){this.g=sd(this,this.D);this.b-=4},function(){this.g=sd(this,this.F);this.b-=4},function(){this.g=sd(this,E(this,D(this)));this.b-=7},function(){this.g=sd(this,this.g);this.b-=4},function(){this.g=td(this,this.w);this.b-=4},function(){this.g=td(this,this.A);this.b-=4},function(){this.g=td(this,this.B);this.b-=4},function(){this.g=td(this,this.C);this.b-=4},function(){this.g=td(this,this.D);this.b-=4},function(){this.g=td(this,this.F);this.b-=4},function(){this.g=td(this,
F(this,D(this)));this.b-=7},function(){this.g=sd(this,this.g);this.b-=4},function(){this.g=E(this,this.w);this.b-=4},function(){this.g=E(this,this.A);this.b-=4},function(){this.g=E(this,this.B);this.b-=4},function(){this.g=E(this,this.C);this.b-=4},function(){this.g=E(this,this.D);this.b-=4},function(){this.g=E(this,this.F);this.b-=4},function(){this.g=E(this,F(this,D(this)));this.b-=7},function(){this.g=E(this,this.g);this.b-=4},function(){this.g=xd(this,this.w);this.b-=4},function(){this.g=xd(this, E(this,D(this)));this.b-=7},function(){this.g=td(this,this.g);this.b-=4},function(){this.g=yd(this,this.w);this.b-=4},function(){this.g=yd(this,this.A);this.b-=4},function(){this.g=yd(this,this.B);this.b-=4},function(){this.g=yd(this,this.C);this.b-=4},function(){this.g=yd(this,this.D);this.b-=4},function(){this.g=yd(this,this.F);this.b-=4},function(){this.g=yd(this,E(this,D(this)));this.b-=7},function(){this.g=yd(this,this.g);this.b-=4},function(){this.g=zd(this,this.w);this.b-=4},function(){this.g=
this.A);this.b-=4},function(){this.g=xd(this,this.B);this.b-=4},function(){this.g=xd(this,this.C);this.b-=4},function(){this.g=xd(this,this.D);this.b-=4},function(){this.g=xd(this,this.F);this.b-=4},function(){this.g=xd(this,F(this,D(this)));this.b-=7},function(){this.g=xd(this,this.g);this.b-=4},function(){this.g=td(this,this.w);this.b-=4},function(){this.g=td(this,this.A);this.b-=4},function(){this.g=td(this,this.B);this.b-=4},function(){this.g=td(this,this.C);this.b-=4},function(){this.g=td(this, zd(this,this.A);this.b-=4},function(){this.g=zd(this,this.B);this.b-=4},function(){this.g=zd(this,this.C);this.b-=4},function(){this.g=zd(this,this.D);this.b-=4},function(){this.g=zd(this,this.F);this.b-=4},function(){this.g=zd(this,E(this,D(this)));this.b-=7},function(){this.g=zd(this,this.g);this.b-=4},function(){this.g=ud(this,this.w);this.b-=4},function(){this.g=ud(this,this.A);this.b-=4},function(){this.g=ud(this,this.B);this.b-=4},function(){this.g=ud(this,this.C);this.b-=4},function(){this.g=
this.D);this.b-=4},function(){this.g=td(this,this.F);this.b-=4},function(){this.g=td(this,F(this,D(this)));this.b-=7},function(){this.g=td(this,this.g);this.b-=4},function(){this.g=yd(this,this.w);this.b-=4},function(){this.g=yd(this,this.A);this.b-=4},function(){this.g=yd(this,this.B);this.b-=4},function(){this.g=yd(this,this.C);this.b-=4},function(){this.g=yd(this,this.D);this.b-=4},function(){this.g=yd(this,this.F);this.b-=4},function(){this.g=yd(this,F(this,D(this)));this.b-=7},function(){this.g= ud(this,this.D);this.b-=4},function(){this.g=ud(this,this.F);this.b-=4},function(){this.g=ud(this,E(this,D(this)));this.b-=7},function(){this.g=ud(this,this.g);this.b-=4},function(){this.g=Ad(this,this.w);this.b-=4},function(){this.g=Ad(this,this.A);this.b-=4},function(){this.g=Ad(this,this.B);this.b-=4},function(){this.g=Ad(this,this.C);this.b-=4},function(){this.g=Ad(this,this.D);this.b-=4},function(){this.g=Ad(this,this.F);this.b-=4},function(){this.g=Ad(this,E(this,D(this)));this.b-=7},function(){this.g=
yd(this,this.g);this.b-=4},function(){this.g=wd(this,this.w);this.b-=4},function(){this.g=wd(this,this.A);this.b-=4},function(){this.g=wd(this,this.B);this.b-=4},function(){this.g=wd(this,this.C);this.b-=4},function(){this.g=wd(this,this.D);this.b-=4},function(){this.g=wd(this,this.F);this.b-=4},function(){this.g=wd(this,F(this,D(this)));this.b-=7},function(){this.g=wd(this,this.g);this.b-=4},function(){E(this,this.w);this.b-=4},function(){E(this,this.A);this.b-=4},function(){E(this,this.B);this.b-= Ad(this,this.g);this.b-=4},function(){this.g=xd(this,this.w);this.b-=4},function(){this.g=xd(this,this.A);this.b-=4},function(){this.g=xd(this,this.B);this.b-=4},function(){this.g=xd(this,this.C);this.b-=4},function(){this.g=xd(this,this.D);this.b-=4},function(){this.g=xd(this,this.F);this.b-=4},function(){this.g=xd(this,E(this,D(this)));this.b-=7},function(){this.g=xd(this,this.g);this.b-=4},function(){yd(this,this.w);this.b-=4},function(){yd(this,this.A);this.b-=4},function(){yd(this,this.B);this.b-=
4},function(){E(this,this.C);this.b-=4},function(){E(this,this.D);this.b-=4},function(){E(this,this.F);this.b-=4},function(){E(this,F(this,D(this)));this.b-=7},function(){E(this,this.g);this.b-=4},function(){pd(this)||(C(this,Ad(this)),this.b-=6);this.b-=5},function(){hd(this,Ad(this));this.b-=10},function(){var a=H(this);pd(this)||C(this,a);this.b-=10},Gd,function(){var a=H(this);pd(this)||(I(this,this.j),C(this,a),this.b-=6);this.b-=11},function(){I(this,Vc(this));this.b-=11},function(){this.g= 4},function(){yd(this,this.C);this.b-=4},function(){yd(this,this.D);this.b-=4},function(){yd(this,this.F);this.b-=4},function(){yd(this,E(this,D(this)));this.b-=7},function(){yd(this,this.g);this.b-=4},function(){qd(this)||(A(this,Cd(this)),this.b-=6);this.b-=5},function(){id(this,Cd(this));this.b-=10},function(){var a=G(this);qd(this)||A(this,a);this.b-=10},Id,function(){var a=G(this);qd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,Wc(this));this.b-=11},function(){this.g=
rd(this,G(this));this.b-=7},function(){I(this,this.j);C(this,0);this.b-=11},function(){pd(this)&&(C(this,Ad(this)),this.b-=6);this.b-=5},Hd,function(){var a=H(this);pd(this)&&C(this,a);this.b-=10},Gd,function(){var a=H(this);pd(this)&&(I(this,this.j),C(this,a),this.b-=6);this.b-=11},Id,function(){this.g=sd(this,G(this));this.b-=7},function(){I(this,this.j);C(this,8);this.b-=11},function(){ld(this)||(C(this,Ad(this)),this.b-=6);this.b-=5},function(){jd(this,Ad(this));this.b-=10},function(){var a=H(this); sd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,0);this.b-=11},function(){qd(this)&&(A(this,Cd(this)),this.b-=6);this.b-=5},Jd,function(){var a=G(this);qd(this)&&A(this,a);this.b-=10},Id,function(){var a=G(this);qd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Kd,function(){this.g=td(this,F(this));this.b-=7},function(){H(this,this.j);A(this,8);this.b-=11},function(){md(this)||(A(this,Cd(this)),this.b-=6);this.b-=5},function(){kd(this,Cd(this));this.b-=10},function(){var a=G(this);
ld(this)||C(this,a);this.b-=10},function(){var a=G(this);Sb(this.H,a,this.g,this.j+-2&65535);this.b-=10},function(){var a=H(this);ld(this)||(I(this,this.j),C(this,a),this.b-=6);this.b-=11},function(){I(this,id(this));this.b-=11},function(){this.g=E(this,G(this));this.b-=7},function(){I(this,this.j);C(this,16);this.b-=11},function(){ld(this)&&(C(this,Ad(this)),this.b-=6);this.b-=5},Hd,function(){var a=H(this);ld(this)&&C(this,a);this.b-=10},function(){var a=G(this);this.g=Ob(this.H,a,this.j+-2&65535)& md(this)||A(this,a);this.b-=10},function(){var a=F(this);Tb(this.H,a,this.g,this.j+-2&65535);this.b-=10},function(){var a=G(this);md(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,jd(this));this.b-=11},function(){this.g=yd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,16);this.b-=11},function(){md(this)&&(A(this,Cd(this)),this.b-=6);this.b-=5},Jd,function(){var a=G(this);md(this)&&A(this,a);this.b-=10},function(){var a=F(this);this.g=Pb(this.H,a,this.j+-2&65535)&
255;this.b-=10},function(){var a=H(this);ld(this)&&(I(this,this.j),C(this,a),this.b-=6);this.b-=11},Id,function(){this.g=xd(this,G(this));this.b-=7},function(){I(this,this.j);C(this,24);this.b-=11},function(){nd(this)||(C(this,Ad(this)),this.b-=6);this.b-=5},function(){kd(this,Ad(this));this.b-=10},function(){var a=H(this);nd(this)||C(this,a);this.b-=10},function(){var a=Ad(this);I(this,D(this));kd(this,a);this.b-=18},function(){var a=H(this);nd(this)||(I(this,this.j),C(this,a),this.b-=6);this.b-= 255;this.b-=10},function(){var a=G(this);md(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Kd,function(){this.g=zd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,24);this.b-=11},function(){od(this)||(A(this,Cd(this)),this.b-=6);this.b-=5},function(){ld(this,Cd(this));this.b-=10},function(){var a=G(this);od(this)||A(this,a);this.b-=10},function(){var a=Cd(this);H(this,D(this));ld(this,a);this.b-=18},function(){var a=G(this);od(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=
11},function(){I(this,D(this));this.b-=11},function(){this.g=td(this,G(this));this.b-=7},function(){I(this,this.j);C(this,32);this.b-=11},function(){nd(this)&&(C(this,Ad(this)),this.b-=6);this.b-=5},function(){C(this,D(this));this.b-=5},function(){var a=H(this);nd(this)&&C(this,a);this.b-=10},function(){var a=D(this);kd(this,id(this));jd(this,a);this.b-=5},function(){var a=H(this);nd(this)&&(I(this,this.j),C(this,a),this.b-=6);this.b-=11},Id,function(){this.g=yd(this,G(this));this.b-=7},function(){I(this, 11},function(){H(this,D(this));this.b-=11},function(){this.g=ud(this,F(this));this.b-=7},function(){H(this,this.j);A(this,32);this.b-=11},function(){od(this)&&(A(this,Cd(this)),this.b-=6);this.b-=5},function(){A(this,D(this));this.b-=5},function(){var a=G(this);od(this)&&A(this,a);this.b-=10},function(){var a=D(this);ld(this,jd(this));kd(this,a);this.b-=5},function(){var a=G(this);od(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Kd,function(){this.g=Ad(this,F(this));this.b-=7},function(){H(this,
this.j);C(this,40);this.b-=11},function(){qd(this)||(C(this,Ad(this)),this.b-=6);this.b-=5},function(){var a=Ad(this);Rc(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=H(this);qd(this)||C(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=H(this);qd(this)||(I(this,this.j),C(this,a),this.b-=6);this.b-=11},function(){I(this,Tc(this)&255|this.g<<8);this.b-=11},function(){this.g=wd(this,G(this));this.b-=7},function(){I(this,this.j);C(this,48);this.b-=11},function(){qd(this)&& this.j);A(this,40);this.b-=11},function(){rd(this)||(A(this,Cd(this)),this.b-=6);this.b-=5},function(){var a=Cd(this);Sc(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);rd(this)||A(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);rd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,Uc(this)&255|this.g<<8);this.b-=11},function(){this.g=xd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,48);this.b-=11},function(){rd(this)&&
(C(this,Ad(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=H(this);qd(this)&&C(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Bd(this)},function(){var a=H(this);qd(this)&&(I(this,this.j),C(this,a),this.b-=6);this.b-=11},Id,function(){E(this,G(this));this.b-=7},function(){I(this,this.j);C(this,56);this.b-=11}]; (A(this,Cd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);rd(this)&&A(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Dd(this)},function(){var a=G(this);rd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Kd,function(){yd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,56);this.b-=11}];
function Jd(a){n.call(this,"ChipSet",a,32768);var b=a.model;b&&!Kd[b]&&ga("Unrecognized ChipSet model: "+b);this.g=Kd[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);sa(this)}ba(Jd,n);k=Jd.prototype;k.ca=function(){return!1}; function Ld(a){n.call(this,"ChipSet",a,32768);var b=a.model;b&&!Md[b]&&ha("Unrecognized ChipSet model: "+b);this.g=Md[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);ta(this)}aa(Ld,n);k=Ld.prototype;k.ca=function(){return!1};
k.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;this.R=a;this.B=vb(a,"Keyboard");this.C=vb(a,"SerialPort");this.video=vb(a,"Video");Nb(b,this,this.g.yb);Rb(b,this,this.g.zb);if(d){var e=this;Ld(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=y(e.j[b]);e.K.i(a)})}};k.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")}; k.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;this.R=a;this.B=wb(a,"Keyboard");this.C=wb(a,"SerialPort");this.video=wb(a,"Video");Ob(b,this,this.g.Bb);Sb(b,this,this.g.Cb);if(d){var e=this;Nd(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=x(e.j[b]);e.K.i(a)})}};k.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")};
k.save=function(){var a=new Uc(this);switch(this.g.pa){case Md.pa:a.set(0,[this.ea,this.A,this.ga,this.N,this.T,this.Y,this.Z]);break;case L.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.I]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()}; k.save=function(){var a=new Vc(this);switch(this.g.pa){case Od.pa:a.set(0,[this.ea,this.A,this.ga,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.I]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case Md.pa:return this.ea=b[0],this.A=b[1],this.ga=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case L.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.I=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Cd=function(a,b){var c=this.ea;v(this,a,null,b,"STATUS0",c,!0);return c}; k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case Od.pa:return this.ea=b[0],this.A=b[1],this.ga=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.I=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Jd=function(a,b){var c=this.ea;q(this,a,null,b,"STATUS0",c,!0);return c};
k.Dd=function(a,b){var c=this.A;v(this,a,null,b,"STATUS1",c,!0);return c};k.Ed=function(a,b){var c=this.ga;v(this,a,null,b,"STATUS2",c,!0);return c};k.Bd=function(a,b){var c=this.N>>8-this.T&255;v(this,a,null,b,"SHIFT.RESULT",c,!0);return c};k.Ld=function(a,b,c){v(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};k.Nd=function(a,b,c){v(this,a,b,c,"SOUND1",null,!0);this.Y=b};k.Md=function(a,b,c){v(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8}; k.Kd=function(a,b){var c=this.A;q(this,a,null,b,"STATUS1",c,!0);return c};k.Ld=function(a,b){var c=this.ga;q(this,a,null,b,"STATUS2",c,!0);return c};k.Id=function(a,b){var c=this.N>>8-this.T&255;q(this,a,null,b,"SHIFT.RESULT",c,!0);return c};k.Wd=function(a,b,c){q(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};k.Yd=function(a,b,c){q(this,a,b,c,"SOUND1",null,!0);this.Y=b};k.Xd=function(a,b,c){q(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
k.Od=function(a,b,c){v(this,a,b,c,"SOUND2",null,!0);this.Z=b};k.Pd=function(a,b,c){v(this,a,b,c,"WATCHDOG",null,!0)};function Nd(a){var b=0,c=0,d=~a.M;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} k.Zd=function(a,b,c){q(this,a,b,c,"SOUND2",null,!0);this.Z=b};k.$d=function(a,b,c){q(this,a,b,c,"WATCHDOG",null,!0)};function Pd(a){var b=0,c=0,d=~a.M;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
k.Fd=function(a,b){var c=this.D,c=c&~L.xa.Zb;if((Cc(this.u)&64)<<1&&(c|=L.xa.Zb,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case L.Aa.Ja.ed:break;case L.Aa.Ja.pc:this.M=this.M<<1|d;break;case L.Aa.Ja.xc:d=Nd(this);this.j[d]=L.Aa.tb;xa(this,"doNVRCommand(): erase data at addr "+y(d));break;case L.Aa.Ja.qc:this.b=this.b<<1|d;break;case L.Aa.Ja.nd:d=Nd(this);e=this.b&L.Aa.tb;this.j[d]=e;xa(this,"doNVRCommand(): write data "+y(e)+" to addr "+y(d));break;case L.Aa.Ja.bd:d=Nd(this);e=this.j[d]; k.Md=function(a,b){var c=this.D,c=c&~J.xa.jc;if((Dc(this.u)&64)<<1&&(c|=J.xa.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Aa.Ja.nd:break;case J.Aa.Ja.Lc:this.M=this.M<<1|d;break;case J.Aa.Ja.Rc:d=Pd(this);this.j[d]=J.Aa.vb;ya(this,"doNVRCommand(): erase data at addr "+x(d));break;case J.Aa.Ja.Mc:this.b=this.b<<1|d;break;case J.Aa.Ja.rd:d=Pd(this);e=this.b&J.Aa.vb;this.j[d]=e;ya(this,"doNVRCommand(): write data "+x(e)+" to addr "+x(d));break;case J.Aa.Ja.ld:d=Pd(this);e=this.j[d];
null==e&&(e=L.Aa.tb);this.b=e;xa(this,"doNVRCommand(): read data "+y(e)+" from addr "+y(d));break;case L.Aa.Ja.dd:this.b<<=1;this.S=this.b&L.Aa.tb+1;break;default:xa(this,"doNVRCommand(): unrecognized command "+Da(e))}}c&=~L.xa.$b;this.S&&(c|=L.xa.$b);c&=~L.xa.Ub;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Cc(d.u)>=d.F+e.Fa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=L.xa.Ub);c&=~L.xa.bc;this.C&&this.C.ia&Od&&(c|=L.xa.bc);this.D=c;v(this,a,null,b,"FLAGS",c);return c}; null==e&&(e=J.Aa.vb);this.b=e;ya(this,"doNVRCommand(): read data "+x(e)+" from addr "+x(d));break;case J.Aa.Ja.md:this.b<<=1;this.S=this.b&J.Aa.vb+1;break;default:ya(this,"doNVRCommand(): unrecognized command "+Ea(e))}}c&=~J.xa.kc;this.S&&(c|=J.xa.kc);c&=~J.xa.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Dc(d.u)>=d.F+e.Fa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.xa.dc);c&=~J.xa.sc;this.C&&this.C.ia&Qd&&(c|=J.xa.sc);this.D=c;q(this,a,null,b,"FLAGS",c);return c};
k.Qd=function(a,b,c){v(this,a,b,c,"BRIGHTNESS");this.W=b};k.Td=function(a,b,c){v(this,a,b,c,"NVR.LATCH");this.L=b};k.Sd=function(a,b,c){v(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,xa(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?Mc(b,!0):b.ya=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}}; k.ae=function(a,b,c){q(this,a,b,c,"BRIGHTNESS");this.W=b};k.de=function(a,b,c){q(this,a,b,c,"NVR.LATCH");this.L=b};k.ce=function(a,b,c){q(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,ya(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?Nc(b,!0):b.ya=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}};
k.Rd=function(a,b,c){v(this,a,b,c,"DC011");b&L.Ka.ad?(b&=L.Ka.ac,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==L.Ka.ac?50:60,xa(a,"updateRate("+b+")"),a.hb=b))):(b&=L.Ka.Rb,this.F!=b&&(this.F=b,this.video&&(a=this.F==L.Ka.Rb?132:80,b=this.video,xa(b,"updateDimensions("+a+","+(80<a&&this.D&L.xa.Yb?14:24)+")"),b.O=a,b.fa=b.Ha,80<a&&b.fa--,Pd(b)&&Qd(b))))}; k.be=function(a,b,c){q(this,a,b,c,"DC011");b&J.Ka.kd?(b&=J.Ka.oc,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==J.Ka.oc?50:60,ya(a,"updateRate("+b+")"),a.jb=b))):(b&=J.Ka.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.Ka.Wb?132:80,b=this.video,ya(b,"updateDimensions("+a+","+(80<a&&this.D&J.xa.ic?14:24)+")"),b.O=a,b.fa=b.Ha,80<a&&b.fa--,Rd(b)&&Sd(b))))};
var Md={pa:1978.1,gd:{qa:0,Re:1,Ve:16,bf:32,lf:64,kf:128,$a:14},Oa:{qa:1,vc:1,Zc:2,Vc:4,Wc:16,Xc:32,Yc:64,$a:8},hd:{qa:2,Qe:3,uf:4,Se:8,ff:16,gf:32,hf:64,Te:128,$a:0},qf:{qa:3},nf:{qa:2,cf:7},sf:{qa:3,vf:1,rf:2,jf:4,$e:8,Ue:16,le:32},pf:{qa:4},tf:{qa:5,We:1,Xe:2,Ye:4,Ze:8,wf:16}},L={pa:100,xa:{qa:66,bc:1,Yb:2,Sc:4,ef:8,df:16,$b:32,Zb:64,Ub:128},tc:{qa:66,INIT:0},Ka:{qa:194,oe:0,Rb:16,ad:32,ac:48,Ec:0,Fc:32},sb:{qa:162,mf:0,Hc:0,Dc:0,Gc:0,Cc:0},Aa:{af:{qa:98},Ja:{qc:0,pc:1,dd:2,nd:4,xc:5,bd:6,ed:7}, var Od={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,xa:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},Ka:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Aa:{rf:{qa:98},Ja:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
tb:16383}},Kd={SI1978:Md,VT100:L};Md.INIT=[[Md.gd.$a,Md.Oa.$a,Md.hd.$a,0,0,0,0]]; vb:16383}},Md={SI1978:Od,VT100:J};Od.INIT=[[Od.pd.bb,Od.Oa.bb,Od.qd.bb,0,0,0,0]];
L.INIT=[[L.tc.INIT,L.xa.Yb|L.xa.Sc],[L.Ka.Ec,L.Ka.Fc],[L.sb.Hc,L.sb.Dc,L.sb.Gc,L.sb.Cc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], J.INIT=[[J.Oc.INIT,J.xa.ic|J.xa.dd],[J.Ka.Uc,J.Ka.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J.ub.Sc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];Md.yb={0:Jd.prototype.Cd,1:Jd.prototype.Dd,2:Jd.prototype.Ed,3:Jd.prototype.Bd}; [11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];Od.Bb={0:Ld.prototype.Jd,1:Ld.prototype.Kd,2:Ld.prototype.Ld,3:Ld.prototype.Id};
Md.zb={2:Jd.prototype.Ld,3:Jd.prototype.Nd,4:Jd.prototype.Md,5:Jd.prototype.Od,6:Jd.prototype.Pd};L.yb={66:Jd.prototype.Fd};L.zb={66:Jd.prototype.Qd,98:Jd.prototype.Td,162:Jd.prototype.Sd,194:Jd.prototype.Rd};hb(function(){for(var a=pa(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=na(c),d=new Jd(d);oa(d,c)}}); Od.Cb={2:Ld.prototype.Wd,3:Ld.prototype.Yd,4:Ld.prototype.Xd,5:Ld.prototype.Zd,6:Ld.prototype.$d};J.Bb={66:Ld.prototype.Md};J.Cb={66:Ld.prototype.ae,98:Ld.prototype.de,162:Ld.prototype.ce,194:Ld.prototype.be};ib(function(){for(var a=qa(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Ld(d);pa(d,c)}});
function Rd(a){n.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.w=a.alias;this.j=a.file;this.B=Ea(this.j);if(this.j){a=this.j;var b=Fa(this.B);"json"!=b&&"hex"!=b&&(a=Ha()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Sa(a,null,!0,function(a,b,f){Sd(c,a,b,f)})}}ba(Rd,n);Rd.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;Td(this)}; function Td(a){n.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.w=a.alias;this.j=a.file;this.B=Fa(this.j);if(this.j){a=this.j;var b=Ga(this.B);"json"!=b&&"hex"!=b&&(a=Ia()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ta(a,null,!0,function(a,b,f){Ud(c,a,b,f)})}}aa(Td,n);Td.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;Vd(this)};
Rd.prototype.va=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,p=h.a;if(void 0!==l){var r=f,l=[l>>>0,g],t=Pa(r,l,a.ec);0>t&&r.splice(-(t+1),0,l)}p&&(h.a=p.replace(/''/g,'"'))}a.A.push({If:b,J:c,Hd:d,ra:e,dc:f})}delete this.ra}return!0};Rd.prototype.ua=function(){return!0}; Td.prototype.va=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,r=h.a;if(void 0!==l){var u=f,l=[l>>>0,g],v=Qa(u,l,a.Ac);0>v&&u.splice(-(v+1),0,l)}r&&(h.a=r.replace(/''/g,'"'))}a.A.push({Mf:b,J:c,Qd:d,ra:e,zc:f})}delete this.ra}return!0};Td.prototype.ua=function(){return!0};
function Sd(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{da(a.bb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, function Ud(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{ea(a.eb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){p("Empty ROM: "+b);return}if(1==a.b.length){p(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=Ba(b[e],16);Td(a)}} " ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=Ca(b[e],16);Vd(a)}}
function Td(a){if(!ra(a))if(!a.j)sa(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);if(a.b.length!=a.g)qa(a,"ROM size ("+x(a.b.length,8,!0)+") does not match specified size ("+x(a.g,8,!0)+")");else{var b;b=a.A;if(zb(a.H,b,a.g,Zb)){var c;for(c=0;c<a.b.length;c++)Hb(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.g,h=[],l=d.A>>>f.g;0<g&&l<f.b.length;)h.push(f.b[l++]),g-=f.w;f=d.H;d=d.g;g=0;for(e>>>= function Vd(a){if(!sa(a))if(!a.j)ta(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);if(a.b.length!=a.g)ra(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.g,8,!0)+")");else{var b;b=a.A;if(Ab(a.H,b,a.g,$b)){var c;for(c=0;c<a.b.length;c++)Ib(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.g,h=[],l=d.A>>>f.g;0<g&&l<f.b.length;)h.push(f.b[l++]),g-=f.w;f=d.H;d=d.g;g=0;for(e>>>=
f.g;0<d&&e<f.b.length;){l=h[g++];if(!l)break;f.b[e++]=l;d-=f.w}}delete a.b}}sa(a)}}hb(function(){for(var a=pa(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=na(c),d=new Rd(d);oa(d,c)}}); f.g;0<d&&e<f.b.length;){l=h[g++];if(!l)break;f.b[e++]=l;d-=f.w}}delete a.b}}ta(a)}}ib(function(){for(var a=qa(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Td(d);pa(d,c)}});
function Ud(a){n.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ia=a.exec;this.j=!1;this.b=a.file;this.B=Ea(this.b);if(this.b){a=this.b;var b=Fa(this.B);"json"!=b&&"hex"!=b&&(a=Ha()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Sa(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(da(c.bb,a,b),(a=Ta(a,b))?(c.g=a.ma,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,Vd(c))})}}ba(Ud,n); function Wd(a){n.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ia=a.exec;this.j=!1;this.b=a.file;this.B=Fa(this.b);if(this.b){a=this.b;var b=Ga(this.B);"json"!=b&&"hex"!=b&&(a=Ia()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ta(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(ea(c.eb,a,b),(a=Ua(a,b))?(c.g=a.ma,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,Xd(c))})}}aa(Wd,n);
Ud.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;Vd(this)};Ud.prototype.va=function(){return!0};Ud.prototype.ua=function(){return!0}; Wd.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;Xd(this)};Wd.prototype.va=function(){return!0};Wd.prototype.ua=function(){return!0};
function Vd(a){!a.j&&a.A&&zb(a.H,a.w,a.A,1)&&(a.j=!0);if(!ra(a)){if(!a.j)q("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Hb(a.H,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==Wd){for(c=0;c<Xd.length;c++)Hb(a.H,Xd[c],118);Qc(a.u,function(a){return function(b){if(0<=Xd.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==Yd)switch(c=!0,d.A){case Zd:$d(a,String.fromCharCode(d.C));break;case ae:for(var l=id(d),p="",r=255;r--;){var t=F(a.u,l++);if(36==t)break; function Xd(a){!a.j&&a.A&&Ab(a.H,a.w,a.A,1)&&(a.j=!0);if(!sa(a)){if(!a.j)p("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Ib(a.H,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==Yd){for(c=0;c<Zd.length;c++)Ib(a.H,Zd[c],118);Rc(a.u,function(a){return function(b){if(0<=Zd.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==$d)switch(c=!0,d.A){case ae:be(a,String.fromCharCode(d.C));break;case ce:for(var l=jd(d),r="",u=255;u--;){var v=E(a.u,l++);if(36==v)break;
p+=String.fromCharCode(t)}$d(a,p);break;default:c=!1}c?Hd.call(d):e&&(a.i("\nCP/M vector "+y(b)),C(d,b),e.da());b=!0}else b=!1;return b}}(a))}Sc(a.u,a.Ia)}delete a.g}sa(a)}}Ud.prototype.reset=function(){};function $d(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}var Yd=5,Zd=2,ae=9,Wd=256,Xd=[0,Yd];hb(function(){for(var a=pa(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=na(c),d=new Ud(d);oa(d,c)}}); r+=String.fromCharCode(v)}be(a,r);break;default:c=!1}c?Jd.call(d):e&&(a.i("\nCP/M vector "+x(b)),A(d,b),e.da());b=!0}else b=!1;return b}}(a))}Tc(a.u,a.Ia)}delete a.g}ta(a)}}Wd.prototype.reset=function(){};function be(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}var $d=5,ae=2,ce=9,Yd=256,Zd=[0,$d];ib(function(){for(var a=qa(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Wd(d);pa(d,c)}});
function be(a){n.call(this,"Keyboard",a,65536);(a=a.model)&&!ce[a]&&ga("Unrecognized Keyboard8080 model: "+a);this.b=ce[a]||{};this.reset();sa(this)}ba(be,n);k=be.prototype; function de(a){n.call(this,"Keyboard",a,65536);(a=a.model)&&!ee[a]&&ha("Unrecognized Keyboard8080 model: "+a);this.b=ee[a]||{};this.reset();ta(this)}aa(de,n);k=de.prototype;
k.ca=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.cb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return c.onkeydown=function(a){return de(d,a,!0)},c.onkeyup=function(a){return de(d,a,!1)},c.onkeypress=function(a){a=a.keyCode;a>=m.qb&&a<=m.Eb?d.g&(ee|fe)||(d.g|=fe,ge(d,20,!0),Ce(d)):a>=m.qd&&a<=m.z&&d.g&fe&&(d.g&=~fe,ge(d,20,!1),Ce(d));return!0},c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(), k.ca=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return cb("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?fe(d,16,!0,!0):fe(d,16,!1),fe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return ge(d,a,!0)},c.onkeyup=function(a){return ge(d,a,!1)}):(c.onkeydown=function(a){return he(d,a,!0)},
a=a.clipboardData||window.clipboardData)){De(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ta&&void 0!==this.b.Ta[b])return this.P[e]=c,c.onclick=function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=17!=b;if(!e){c.style.fontWeight="normal";if(d=!(a.g&Ee))c.style.fontWeight="bold";Fe(a,b,d)}ge(a,b,d,e);a.R&&a.R.Ya()}}(this,this.b.Ta[b]),!0}}return!1}; c.onkeyup=function(a){return he(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(De|Ee)||(d.g|=Ee,fe(d,20,!0),Fe(d)):a>=m.yc&&a<=m.z&&d.g&Ee&&(d.g&=~Ee,fe(d,20,!1),Fe(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Ge(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
k.Ea=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Hc(this.u,function(){Ge(e)});this.W=vb(a,"ChipSet");this.C=vb(a,"SerialPort");Nb(b,this,this.b.yb);Rb(b,this,this.b.zb)};k.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")}; function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=He:20==b&&(e=Ee);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Ie(a,b,d)}fe(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};k.Ea=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Ic(this.u,function(){Je(e)});this.W=wb(a,"ChipSet");this.C=wb(a,"SerialPort");Ob(b,this,this.b.Bb);Sb(b,this,this.b.Cb)};
k.save=function(){var a=new Uc(this);switch(this.b.pa){case M.pa:a.set(0,[this.D,this.B,this.A,this.F,-1])}return a.data()};k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case He.pa:return!0;case M.pa:return this.D=b[0],Ce(this,this.D&M.Ba.Wb),this.B=b[1],this.A=b[2],this.F=b[3],this.w=b[4],!0}return!1}; k.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")};k.save=function(){var a=new Vc(this);switch(this.b.pa){case K.pa:a.set(0,[this.D,this.B,this.A,this.F,-1])}return a.data()};
function Ce(a,b){var c;null!=b?a.I=b:b=a.I;for(var d in a.b.cb)if(c="led-"+d,c=a.P[c]){var e=a.b.cb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+x(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&fe?"#"+x(65280,6):"#000000"}function Fe(a,b,c,d){var e=0;switch(b){case 16:e=d?Ie:Je;break;case 17:e=d?Ke:Ee;break;case 18:e=d?Le:Me;break;case 91:e=d?Ne:Oe;break;case 20:e=fe}e&&(a.g=c?a.g|e:a.g&~e)} k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case Ke.pa:return!0;case K.pa:return this.D=b[0],Fe(this,this.D&K.Ba.ec),this.B=b[1],this.A=b[2],this.F=b[3],this.w=b[4],!0}return!1};function Fe(a,b){var c;null!=b?a.I=b:b=a.I;for(var d in a.b.fb)if(c="led-"+d,c=a.P[c]){var e=a.b.fb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+t(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&Ee?"#"+t(65280,6):"#000000"}
function de(a,b,c){var d=!0,e=b.keyCode;Fe(a,e,c,2==b.location);var f;a:if(e=a.b.Qb[e]||e,a.b.Db[e])f=e;else{for(f in a.b.Ta)if(a.b.Ta[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(Pe|Qe)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|Qe:a.g&~Qe)),d=ge(a,f,c),(!(f>=m.qb&&f<=m.Eb)||a.g|Re)&&b.preventDefault&&b.preventDefault());return d} function Ie(a,b,c,d){var e=0;switch(b){case 16:e=d?Le:Me;break;case 17:e=d?Ne:He;break;case 18:e=d?Oe:Pe;break;case 91:e=d?Qe:Re;break;case 20:e=Ee,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c}
function ge(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Mb==b)break a;e=-1}if(c)0>e?a.j.push({Mb:b,Jb:Date.now(),vb:d||!1}):(a.j[e].Jb=Date.now(),a.j[e].vb=d||!1),d&&Ge(a);else if(0<=e){if(!a.j[e].vb&&(d=a.j[e].Jb)&&Date.now()-d<Se)return a.j[e].vb=!0,Ge(a),!0;a.j.splice(e,1)}if(a.W){d=0;switch(b){case "1p":d=Md.Oa.Vc;break;case "2p":d=Md.Oa.Zc;break;case "coin":d=Md.Oa.vc;break;case "left":d=Md.Oa.Xc;break;case "right":d=Md.Oa.Yc;break;case "fire":d=Md.Oa.Wc}d&&(a=a.W,b=d,a.A&=~b,c&&(a.A|= function he(a,b,c){var d=!0,e=b.keyCode,e=ca[e]||e;c=Ie(a,e,c,2==b.location);var f;a:if(e=a.b.Tb[e]||e,a.b.Sa[e])f=e;else{for(f in a.b.Ua)if(a.b.Ua[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(Se|Te)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|Te:a.g&~Te)),d=fe(a,f,c),(!(f>=m.ab&&f<=m.wb)||a.g|Ue)&&b.preventDefault&&b.preventDefault());return d}
b))}return!0}function Ge(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].vb){var d=a.j[b].Mb,e=Se-(Date.now()-a.j[b].Jb);if(0<e){if(0>c||c>e)c=e}else{ge(a,d,!1);b=0;continue}}b++}0<=c&&Ic(a.u,a.L,c)}k.Gd=function(a,b){var c=this.B;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=M.Db[c.Mb],c&128&&(c&=127)):(this.w=-1,c=M.Kc),this.B=c,Cd(this.u,1));v(this,a,null,b,"KBDUART.ADDRESS",c);return c}; function ge(a,b,c){var d=!0;if(c){b=b.keyCode;var e=a.b.Sa[b];if(e){var f;a:{for(f in a.b.sb)if(a.b.sb[f]==e){f=+f;break a}f=0}f||(d=fe(a,b,c,!0))}}return d}
k.Ud=function(a,b,c){v(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.F=Cc(this.u);Ce(this,b&M.Ba.Wb);b&M.Ba.fd&&(this.w=0,Cd(this.u,1))};var Ie=1,Je=2,ee=3,Ke=4,Ee=8,Re=12,Le=16,Me=32,Pe=48,Ne=64,Oe=128,fe=512,Qe=4096,Se=50,Te={};Te[m.qb]=37;Te[m.Sb]=39;Te[m.Vb]=32; function fe(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Pb==b)break a;e=-1}if(c)0>e?a.j.push({Pb:b,Mb:Date.now(),yb:d||!1}):(a.j[e].Mb=Date.now(),a.j[e].yb=d||!1),d&&Je(a);else if(0<=e){if(!a.j[e].yb&&(d=a.j[e].Mb)&&Date.now()-d<Ve)return a.j[e].yb=!0,Je(a),!0;a.j.splice(e,1)}if(a.W){d=0;switch(b){case "1p":d=Od.Oa.ed;break;case "2p":d=Od.Oa.jd;break;case "coin":d=Od.Oa.Pc;break;case "left":d=Od.Oa.gd;break;case "right":d=Od.Oa.hd;break;case "fire":d=Od.Oa.fd}d&&(a=a.W,b=d,a.A&=~b,c&&(a.A|=
var He={pa:1978.1,Db:{},Qb:Te,cb:{},Ta:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},N={},M={pa:100,Db:(N[8]=3,N[m.Uc]=5,N[m.Tc]=6,N[m.pd]=7,N[m.jd]=8,N[m.md]=9,N[m.Q]=10,N[39]=16,N[221]=20,N[219]=21,N[m.Bc]=22,N[m.kd]=23,N[m.$c]=24,N[m.E]=25,N[49]=26,N[37]=32,N[40]=34,N[117]=35,N[19]=35,N[192]=36,N[189]=37,N[57]=38,N[55]=39,N[52]=40,N[51]=41,N[27]=42,N[38]=48,N[114]=49,N[112]=50,N[46]=51,N[187]=52,N[48]=53,N[56]=54,N[54]=55,N[53]=56,N[50]=57,N[9]=58,N[103]=64,N[115]=65,N[113]=66,N[96]=67,N[118]= b))}return!0}function Je(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].yb){var d=a.j[b].Pb,e=Ve-(Date.now()-a.j[b].Mb);if(0<e){if(0>c||c>e)c=e}else{fe(a,d,!1);b=0;continue}}b++}0<=c&&Jc(a.u,a.L,c)}k.Nd=function(a,b){var c=this.B;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=K.Sa[c.Pb],c&128&&(c&=127)):(this.w=-1,c=K.Yc),this.B=c,Ed(this.u,1));q(this,a,null,b,"KBDUART.ADDRESS",c);return c};
68,N[220]=69,N[m.Vb]=70,N[m.Jc]=71,N[m.zc]=72,N[m.yc]=73,N[m.qb]=74,N[104]=80,N[2013]=81,N[98]=82,N[97]=83,N[222]=85,N[186]=86,N[m.Ic]=87,N[m.Ac]=88,N[m.Sb]=89,N[m.cd]=90,N[110]=96,N[116]=97,N[101]=98,N[100]=99,N[13]=100,N[190]=101,N[188]=102,N[m.Rc]=103,N[m.sc]=104,N[m.od]=105,N[119]=106,N[105]=112,N[99]=113,N[102]=114,N[109]=115,N[191]=117,N[m.Qc]=118,N[m[" "]]=119,N[m.ld]=120,N[m.uc]=121,N[m.Eb]=122,N[120]=123,N[17]=124,N[16]=125,N[20]=126,N),Qb:{},cb:{},Ta:{ctrl:17,esc:27,tab:9,"num-comma":116, k.ee=function(a,b,c){q(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.F=Dc(this.u);Fe(this,b&K.Ba.ec);b&K.Ba.od&&(this.w=0,Ed(this.u,1))};var Le=1,Me=2,De=3,Ne=4,He=8,Ue=12,Oe=16,Pe=32,Se=48,Qe=64,Re=128,Ee=512,Te=4096,Ve=50,We={};We[m.ab]=37;We[m.Fb]=39;We[m.Hb]=32;
"break":117,"line-feed":118,"no-scroll":119,setup:120},rc:{qa:130,INIT:127},Ba:{qa:130,Oc:1,Nc:2,Mc:4,Lc:8,Pc:16,Xb:32,Wb:63,fd:64,ne:128,INIT:0},Kc:127};M.cb={l4:M.Ba.Oc,l3:M.Ba.Nc,l2:M.Ba.Mc,l1:M.Ba.Lc,locked:M.Ba.Pc,local:M.Ba.Xb,online:~M.Ba.Xb,"caps-lock":fe};var ce={SI1978:He,VT100:M};M.INIT=[[M.Ba.INIT,M.rc.INIT,!1,0,-1]];M.yb={130:be.prototype.Gd};M.zb={130:be.prototype.Ud};hb(function(){for(var a=pa(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=na(c),d=new be(d);oa(d,c)}}); var Ke={pa:1978.1,Sa:{},sb:{},Tb:We,fb:{},Ua:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Sa:(M[8]=3,M[m.mc]=5,M[m.lc]=6,M[m.xc]=7,M[m.qc]=8,M[m.uc]=9,M[m.Q]=10,M[39]=16,M[221]=20,M[219]=21,M[m.ac]=22,M[m.rc]=23,M[m.nc]=24,M[m.E]=25,M[49]=26,M[37]=32,M[40]=34,M[117]=35,M[19]=35,M[192]=36,M[189]=37,M[57]=38,M[55]=39,M[52]=40,M[51]=41,M[27]=42,M[38]=48,M[114]=49,M[112]=50,M[46]=51,M[187]=52,M[48]=53,M[56]=54,M[54]=55,M[53]=56,M[50]=57,M[9]=58,M[103]=64,M[115]=65,M[113]=66,
function Ue(a,b,c,d,e){n.call(this,"Video",a,262144);var f=this;this.Sa=bb("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.la=a.bufferAddr;this.td=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&Ve[h.toUpperCase()]||We;this.O=a.bufferCols;this.Z=a.bufferRows;this.Ha=this.fa=a.cellWidth||1;this.ba=a.cellHeight||1;this.ea=null;this.Na=!1;this.na=a.bufferBits||1;this.vd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&& M[96]=67,M[118]=68,M[220]=69,M[m.Hb]=70,M[m.cc]=71,M[m.Zb]=72,M[m.Yb]=73,M[m.ab]=74,M[104]=80,M[2013]=81,M[98]=82,M[97]=83,M[222]=85,M[186]=86,M[m.bc]=87,M[m.$b]=88,M[m.Fb]=89,M[m.pc]=90,M[110]=96,M[116]=97,M[101]=98,M[100]=99,M[13]=100,M[190]=101,M[188]=102,M[m.hc]=103,M[m.Ub]=104,M[m.wc]=105,M[119]=106,M[105]=112,M[99]=113,M[102]=114,M[109]=115,M[191]=117,M[m.gc]=118,M[m[" "]]=119,M[m.tc]=120,M[m.Vb]=121,M[m.wb]=122,M[120]=123,M[17]=124,M[16]=125,M[20]=126,M),sb:(N[m.p]=5,N[m.Sd]=6,N[m.y]=7,N[m.t]=
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.ib=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.yd=d)||b||null;this.Ab=this.M;this.sd=this.I;this.La=this.M/this.O|0;this.Ma=this.I/this.Z|0;1<this.ba&&(this.Z++,this.sa=0,this.ya=!1);b=a.smoothing;(c=cb("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360, 8,N[m.re]=9,N[m.q]=10,N[m["]"]]=20,N[m["["]]=21,N[m.Fd]=22,N[m.pe]=23,N[m.r]=24,N[m.e]=25,N[m["1"]]=26,N[m["`"]]=36,N[m["-"]]=37,N[m["9"]]=38,N[m["7"]]=39,N[m["4"]]=40,N[m["3"]]=41,N[m["="]]=52,N[m["0"]]=53,N[m["8"]]=54,N[m["6"]]=55,N[m["5"]]=56,N[m["2"]]=57,N[m["\\"]]=69,N[m.Pd]=70,N[m.k]=71,N[m.Dd]=72,N[m.Bd]=73,N[m.yc]=74,N[m["'"]]=85,N[m[";"]]=86,N[m.Od]=87,N[m.Ed]=88,N[m.d]=89,N[m.oe]=90,N[13]=100,N[m["."]]=101,N[m[","]]=102,N[m.n]=103,N[m.ud]=104,N[m.x]=105,N[m["/"]]=117,N[m.Rd]=118,N[m[" "]]=
0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.I),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.I/this.M,this.M/this.I));if(this.b=e)if(this.b.Wa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Wa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Xe(f,!!(document.fullscreenElement||document.msFullscreenElement|| 119,N[m.qe]=120,N[m.xd]=121,N[m.z]=122,N[m.mc]=133,N[m.lc]=134,N[m.xc]=135,N[m.qc]=136,N[m.uc]=137,N[m.Q]=138,N[m["}"]]=148,N[m["{"]]=149,N[m.ac]=150,N[m.rc]=151,N[m.nc]=152,N[m.E]=153,N[m["!"]]=154,N[m["~"]]=164,N[m._]=165,N[m["("]]=166,N[m["&"]]=167,N[m.$]=168,N[m["#"]]=169,N[m["+"]]=180,N[m[")"]]=181,N[m["*"]]=182,N[m["^"]]=183,N[m["%"]]=184,N[m["@"]]=185,N[m["|"]]=197,N[m.Hb]=198,N[m.cc]=199,N[m.Zb]=200,N[m.Yb]=201,N[m.ab]=202,N[m['"']]=213,N[m[":"]]=214,N[m.bc]=215,N[m.$b]=216,N[m.Fb]=217,N[m.pc]=
document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Xe(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=Fa(this.S)&&(this.S=Ha()+"/api/v1/dump?file="+this.S+"&format=bytes"),Sa(this.S,null,!0,function(a,b,c){Ye(f,a,b,c)});this.Fa={}}ba(Ue,n); 218,N[m[">"]]=229,N[m["<"]]=230,N[m.hc]=231,N[m.Ub]=232,N[m.wc]=233,N[m["?"]]=245,N[m.gc]=246,N[m.tc]=248,N[m.Vb]=249,N[m.wb]=250,N),Tb:{},fb:{},Ua:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Nc:{qa:130,INIT:127},Ba:{qa:130,bd:1,ad:2,$c:4,Zc:8,cd:16,fc:32,ec:63,od:64,Ce:128,INIT:0},Yc:127};K.fb={l4:K.Ba.bd,l3:K.Ba.ad,l2:K.Ba.$c,l1:K.Ba.Zc,locked:K.Ba.cd,local:K.Ba.fc,online:~K.Ba.fc,"caps-lock":Ee};var ee={SI1978:Ke,VT100:K};
function Pd(a){a.C=a.O*a.fa;a.N=a.Z*a.ba;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.td&&(a.L=(a.C*a.na>>3)*a.N,!zb(a.H,a.la,a.L,3)))return!1;a.L?(a.Ua=a.j.createImageData(b,c),a.fb=16/a.na|0,Ze(a,a.L>>1)):Ze(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.wa=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+$e);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==af&&(a.U[a.X+bf]=[255,255,0,255],a.U[a.X+cf]=[0,255,0,255]);a.Y==df&&(a.hb=60,a.za=!1,a.ga=Array(a.O)); K.INIT=[[K.Ba.INIT,K.Nc.INIT,!1,0,-1]];K.Bb={130:de.prototype.Nd};K.Cb={130:de.prototype.ee};ib(function(){for(var a=qa(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new de(d);pa(d,c)}});
return!0}k=Ue.prototype;k.ca=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Fa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Wa?c.onclick=function(){d.Wa()}:c.parentNode.removeChild(c),!0}return!1}; function Xe(a,b,c,d,e){n.call(this,"Video",a,262144);var f=this;this.Ta=cb("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.la=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&Ye[h.toUpperCase()]||Ze;this.O=a.bufferCols;this.Z=a.bufferRows;this.Ha=this.fa=a.cellWidth||1;this.ba=a.cellHeight||1;this.ea=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;Pd(this);if(this.B=vb(a,"Keyboard")){for(var e in this.Fa)this.B.ca("led",e,this.Fa[e]);this.F&&this.B.ca(this.yd?"textarea":"canvas","screen",this.V)}var f=this;this.ub=Hc(this.u,function(){Mc(f)});Ic(this.u,this.ub,1E3/Math.max(this.ib,this.oa));this.gb=0;this.S||sa(this)}; (this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.I;this.La=this.M/this.O|0;this.Ma=this.I/this.Z|0;1<this.ba&&(this.Z++,this.sa=0,this.ya=!1);b=a.smoothing;(c=db("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
function Ye(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{da(a.bb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){q("Empty font ROM: "+b);return}if(1==f.length){q(f[0]);return}if(2048==f.length)a.ea=f,Qd(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&sa(a)}} 0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.I),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.I/this.M,this.M/this.I));if(this.b=e)if(this.b.Xa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Xa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){$e(f,!!(document.fullscreenElement||document.msFullscreenElement||
function Qd(a){a.ea&&(a.Na=a.Y==df,a.T[ef]=[ff(a,a.fa,a.ba),ff(a,a.fa,a.ba,a.za)],a.T[gf]=[ff(a,2*a.fa,a.ba),ff(a,2*a.fa,a.ba,a.za)],a.T[hf]=a.T[jf]=[ff(a,2*a.fa,2*a.ba),ff(a,2*a.fa,2*a.ba,a.za)])} document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){$e(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=Ga(this.S)&&(this.S=Ia()+"/api/v1/dump?file="+this.S+"&format=bytes"),Ta(this.S,null,!0,function(a,b,c){af(f,a,b,c)});this.Fa={}}aa(Xe,n);
function ff(a,b,c,d){var e=8>=a.Ha?8:16,f=8<e?15:0,g=a.ea.length/e,h=!1===d,l={fa:b,ba:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=g/16*c;l.context=l.canvas.getContext("2d");for(var p=l.context.createImageData(b,c),r=0;r<g;r++){for(var t=0,A=t;t<a.ba;t++)for(var w=r*e+(f+t&e-1),w=d&&8==t?255:a.ea[w],u=0;u<c/a.ba;u++){for(var B=0,S=0,ya=S;S<a.fa;S++){for(var K=w&128>>(7<S?7:S),B=a.Na&&!K&&B?B:K,ia=0;ia<b/a.fa;ia++)h&&(B=!B),kf(a,p,ya,A,B?1:0),ya++;B=K}A++}l.context.putImageData(p, function Rd(a){a.C=a.O*a.fa;a.N=a.Z*a.ba;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Ab(a.H,a.la,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,bf(a,a.L>>1)):bf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.wa=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+cf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==df&&(a.U[a.X+ef]=[255,255,0,255],a.U[a.X+ff]=[0,255,0,255]);a.Y==gf&&(a.jb=60,a.za=!1,a.ga=Array(a.O));
(r&15)*b,(r>>4)*c)}return l}k.va=function(a,b){return b||!a||this.restore(a)?!0:!1};k.ua=function(a){return!a||this.save()};k.save=function(){var a=new Uc(this);a.set(0,[]);return a.data()};k.restore=function(){return!0}; return!0}k=Xe.prototype;k.ca=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Fa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
k.Wa=function(){var a=!1;if(this.b){if(this.b.Wa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.I;b>c&&(a=Math.round(c/b*100)+"%")}this.Sa?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Wa();a=!0}this.V&&this.V.focus()}return a}; k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;Rd(this);if(this.B=wb(a,"Keyboard")){for(var e in this.Fa)this.B.ca("led",e,this.Fa[e]);this.F&&this.B.ca(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Ic(this.u,function(){Nc(f)});Jc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||ta(this)};
function Xe(a,b){!b&&a.b&&(a.Sa?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");xa(a,"notifyFullScreen("+b+")")}function Ze(a,b){a.eb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.eb)a.A=Array(a.eb)}function kf(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==af&&(208<=c&&236>c?e=a.X+bf:28<=c&&72>c&&(e=a.X+cf));a=a.U[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} function af(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{ea(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){p("Empty font ROM: "+b);return}if(1==f.length){p(f[0]);return}if(2048==f.length)a.ea=f,Sd(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&ta(a)}}
function Mc(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.gb&1?(Cd(a.u,2),c=!1):Cd(a.u,1):Cd(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.la>>>d.g;0<e&&g<d.b.length;)d.b[g].Ca&&(d.b[g].Ca=f=!1,d.b[g].hc=!0),e-=d.w,g++;f&&(c=!1)}Ic(a.u,a.ub,1E3/Math.max(a.ib,a.oa));a.gb++}if(c)if(1<a.fa)switch(a.Y){case df:for(var c=a.la,d=-1,e=0,f=60==a.hb?2:5,h=g=0,l=-1;e<a.Z;){var p=0,r=c,t=d,A=a.O;for(t!=ef&&(A>>=1);;){var w=Eb(a.H,r++);if((w&lf)==lf){var u=Eb(a.H,r++),d=u&mf,c=(u&nf)<<8|Eb(a.H,r),c=c+(u&of? function Sd(a){a.ea&&(a.Na=a.Y==gf,a.T[hf]=[jf(a,a.fa,a.ba),jf(a,a.fa,a.ba,a.za)],a.T[kf]=[jf(a,2*a.fa,a.ba),jf(a,2*a.fa,a.ba,a.za)],a.T[lf]=a.T[mf]=[jf(a,2*a.fa,2*a.ba),jf(a,2*a.fa,2*a.ba,a.za)])}
pf:qf);break}if(p<A)a.ga[p++]=w;else break}if(f)f--;else{for(;p<a.ga.length;)a.ga[p++]=0;if(0<=t)for(r=a.W&&a.A[g]==A,a.A[g++]=A,A=0;A<p;A++){w=a.ga[A];if(!r||w!==a.A[g]){a.A[l=g]=w;var u=a,B=a.wa,S=w&127;if(w=u.T[t][w&128?1:0]){var ya=(S&15)*w.fa,S=(S>>4)*w.ba,K,ia,ta,ma,La=w.fa,cc=w.ba;B?(K=A*u.fa,ia=e*u.ba,ta=u.fa,ma=u.ba):(K=A*u.La,ia=e*u.Ma,ta=u.La,ma=u.Ma);w.fa>u.fa&&(K*=2,ta*=2);w.ba>u.ba&&(t==jf&&(S+=u.ba),cc=u.ba);B?B.drawImage(w.canvas,ya,S,La,cc,K,ia,ta,ma):(K+=0,ia+=0,u.j.drawImage(w.canvas, function jf(a,b,c,d){var e=8>=a.Ha?8:16,f=8<e?15:0,g=a.ea.length/e,h=!1===d,l={fa:b,ba:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=g/16*c;l.context=l.canvas.getContext("2d");for(var r=l.context.createImageData(b,c),u=0;u<g;u++){for(var v=0,B=v;v<a.ba;v++)for(var y=u*e+(f+v&e-1),y=d&&8==v?255:a.ea[y],w=0;w<c/a.ba;w++){for(var C=0,T=0,za=T;T<a.fa;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.fa;ja++)h&&(C=!C),nf(a,r,za,B,C?1:0),za++;C=L}B++}l.context.putImageData(r,
ya,S,La,cc,K,ia,ta,ma))}h++}g++}e++}}a.W=!0;!b&&a.ya&&1==h&&(a.A[l]=-1,h=0);a.ya=!1;(h||b)&&a.wa&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Ab,a.sd)}else{e=a.la;f=e+a.L;l=h=g=0;b=a.C;p=0;c=a.N;t=d=0;r=a.na;A=(1<<r)-1;a.vd&&(r=-r,t=16+r);for(;e<f;){u=Gb(a.H,e);if(a.W&&u===a.A[g])h+=a.fb;else{a.A[g]=u;(B=t)&&(u=u>>8|(u&255)<<8);h<b&&(b=h);for(w=a.fb;w--;)ya=u>>B&A,kf(a,a.Ua,h++,l,ya),B+=r;h>p&&(p=h);l<c&&(c=l);l>=d&&(d=l+1)}e+=2;g++;if(h>=a.C&&(h=0,l++,l>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&& (u&15)*b,(u>>4)*c)}return l}k.va=function(a,b){return b||!a||this.restore(a)?!0:!1};k.ua=function(a){return!a||this.save()};k.save=function(){var a=new Vc(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.wa.putImageData(a.Ua,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.I))}}var bf=0,cf=1,$e=2,We=0,af=1,df=2,Ve={SI1978:af,VT100:df},ef=96,gf=64,hf=32,jf=0,lf=127,nf=15,of=16,mf=96,pf=8192,qf=16384; k.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.I;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Xa();a=!0}this.V&&this.V.focus()}return a};
hb(function(){for(var a=pa(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=na(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=Ua().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= function $e(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");ya(a,"notifyFullScreen("+b+")")}function bf(a,b){a.gb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function nf(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==df&&(208<=c&&236>c?e=a.X+ef:28<=c&&72>c&&(e=a.X+ff));a=a.U[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||cb("aspect"));f&&.3<=f&&3.33>=f&&(gb("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");bb("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new Ue(d,e,g,f,c);oa(d,c)}}); function Nc(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Ed(a.u,2),c=!1):Ed(a.u,1):Ed(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.la>>>d.g;0<e&&g<d.b.length;)d.b[g].Ca&&(d.b[g].Ca=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Jc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.fa)switch(a.Y){case gf:for(var c=a.la,d=-1,e=0,f=60==a.jb?2:5,h=g=0,l=-1;e<a.Z;){var r=0,u=c,v=d,B=a.O;for(v!=hf&&(B>>=1);;){var y=Fb(a.H,u++);if((y&of)==of){var w=Fb(a.H,u++),d=w&pf,c=(w&qf)<<8|Fb(a.H,u),c=c+(w&rf?
function rf(a){n.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:q("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=sf;b&&(void 0===c&&(c="Panel"),(c=la(c,this.id))&&(b=c.P[b])&&this.ca(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.jc,receiveData:this.Lb,receiveStatus:this.ce}} sf:tf);break}if(r<B)a.ga[r++]=y;else break}if(f)f--;else{for(;r<a.ga.length;)a.ga[r++]=0;if(0<=v)for(u=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<r;B++){y=a.ga[B];if(!u||y!==a.A[g]){a.A[l=g]=y;var w=a,C=a.wa,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.fa,T=(T>>4)*y.ba,L,ja,ua,na,Ma=y.fa,ec=y.ba;C?(L=B*w.fa,ja=e*w.ba,ua=w.fa,na=w.ba):(L=B*w.La,ja=e*w.Ma,ua=w.La,na=w.Ma);y.fa>w.fa&&(L*=2,ua*=2);y.ba>w.ba&&(v==mf&&(T+=w.ba),ec=w.ba);C?C.drawImage(y.canvas,za,T,Ma,ec,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
ba(rf,n);k=rf.prototype; za,T,Ma,ec,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.ya&&1==h&&(a.A[l]=-1,h=0);a.ya=!1;(h||b)&&a.wa&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Db,a.td)}else{e=a.la;f=e+a.L;l=h=g=0;b=a.C;r=0;c=a.N;v=d=0;u=a.na;B=(1<<u)-1;a.yd&&(u=-u,v=16+u);for(;e<f;){w=Hb(a.H,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,nf(a,a.Va,h++,l,za),C+=u;h>r&&(r=h);l<c&&(c=l);l>=d&&(d=l+1)}e+=2;g++;if(h>=a.C&&(h=0,l++,l>a.N))break}a.W=!0;b<a.C&&(e=r-b,d-=c,a.g&&
k.ca=function(a,b,c,d){var e=this;switch(b){case sf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),tf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;tf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Lb(d);return!0}, (f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.wa.putImageData(a.Va,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.I))}}var ef=0,ff=1,cf=2,Ze=0,df=1,gf=2,Ye={SI1978:df,VT100:gf},hf=96,kf=64,lf=32,mf=0,of=127,qf=15,rf=16,pf=96,sf=8192,tf=16384;
!0}return!1};k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;var e=this;this.Y=Hc(this.u,function(){e.Lb()});this.Z=Hc(this.u,function(){De(e)});this.W=vb(a,"ChipSet");Nb(b,this,uf,this.U);Rb(b,this,vf,this.U);sa(this)}; ib(function(){for(var a=qa(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=oa(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=Va().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
k.jc=function(a){if(!this.b){var b=vc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Na(c[0]);if(d!=this.ab)return;c=Na(c[1]);if(this.b=ka(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.I=e.receiveStatus;this.status("Connected "+this.bb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}}; (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||db("aspect"));f&&.3<=f&&3.33>=f&&(hb("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");cb("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new Xe(d,e,g,f,c);pa(d,c)}});
k.va=function(a,b){if(!b)if(this.jc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){wf(this)};k.save=function(){var a=new Uc(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};k.restore=function(a){return wf(this,a[0])}; function uf(a){n.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:p("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=vf;b&&(void 0===c&&(c="Panel"),(c=ma(c,this.id))&&(b=c.P[b])&&this.ca(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
function wf(a,b){var c=0;b||(b=xf);a.F=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function yf(a,b){var c=a.L&b;b&15||(c>>=4);b=zf[c];c=((a.B&Af)>>2)+6;a.B&Bf&&c++;c+=((a.B&Cf)>>6)+1>>1;return 1E3/Math.round(b/c)}function tf(a,b){xa(a,"receiveByte("+Da(b)+"), status="+Da(a.ia));return a.N||a.ia&Df?!1:(a.M=b,a.ia|=Df,Cd(a.u,a.X),!0)} aa(uf,n);k=uf.prototype;
k.Lb=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(tf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.u&&Ic(this.u,this.Y,yf(this,Ef)));return!0};k.ce=function(a){this.ia&=~Ff;a&64&&(this.ia|=Ff)};function De(a,b){a.ia=a.ia|Od|Gf;b&&a.Ra&&a.Ra.call(a.b,b)}k.Ad=function(a,b){var c=this.M;v(this,a,null,b,"DATA",c);this.ia&=~Df;return c};k.zd=function(a,b){var c=this.ia;v(this,a,null,b,"STATUS",c);return c}; k.ca=function(a,b,c,d){var e=this;switch(b){case vf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),wf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;wf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Ob(d);return!0},
k.Kd=function(a,b,c){v(this,a,b,c,"DATA");this.O=b;this.ia&=~(Od|Gf);xa(this,"transmitByte("+Da(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Oa[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.w%b,this.V&&(a=Ka("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop= !0}return!1};k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;var e=this;this.Y=Ic(this.u,function(){e.Ob()});this.Z=Ic(this.u,function(){Ge(e)});this.W=wb(a,"ChipSet");Ob(b,this,xf,this.U);Sb(b,this,yf,this.U);ta(this)};
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Ic(this.u,this.Z,yf(this,Hf))};k.Jd=function(a,b,c){v(this,a,b,c,"CONTROL");this.F?(this.I&&(b^this.C)&(If|Jf)&&(a=0,this.D?(a|=b&If?32:0,a|=b&Jf?320:0):(a|=b&If?16:0,a|=b&Jf?1048576:0),this.I.call(this.b,a)),this.C=b,this.C&Kf&&(this.F=!1)):(this.B=b,this.F=!0)};k.Id=function(a,b,c){v(this,a,b,c,"BAUDRATES");this.L=b}; k.Fc=function(a){if(!this.b){var b=wc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Oa(c[0]);if(d!=this.cb)return;c=Oa(c[1]);if(this.b=la(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.I=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
var Af=12,Bf=16,Cf=192,Jf=2,If=32,Kf=64,Od=1,Df=2,Gf=4,Ff=128,Ef=15,Hf=240,zf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],xf=[!1,0,0,133,142,39,238],sf="buffer",uf={0:rf.prototype.Ad,1:rf.prototype.zd},vf={0:rf.prototype.Kd,1:rf.prototype.Jd,2:rf.prototype.Id};hb(function(){for(var a=pa(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=na(c),d=new rf(d);oa(d,c)}}); k.va=function(a,b){if(!b)if(this.Fc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){zf(this)};k.save=function(){var a=new Vc(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};k.restore=function(a){return zf(this,a[0])};
function Lf(a){n.call(this,"Debugger",a);this.na=+a.base||16;this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}ba(Lf,n);Lf.prototype.Hb=function(){return-1};Lf.prototype.Ib=function(){}; function zf(a,b){var c=0;b||(b=Af);a.F=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function Bf(a,b){var c=a.L&b;b&15||(c>>=4);b=Cf[c];c=((a.B&Df)>>2)+6;a.B&Ef&&c++;c+=((a.B&Ff)>>6)+1>>1;return 1E3/Math.round(b/c)}function wf(a,b){ya(a,"receiveByte("+Ea(b)+"), status="+Ea(a.ia));return a.N||a.ia&Gf?!1:(a.M=b,a.ia|=Gf,Ed(a.u,a.X),!0)}
Lf.prototype.xb=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Na(a.substring(d,f))),d=f+1}}return b}; k.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(wf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.u&&Jc(this.u,this.Y,Bf(this,Hf)));return!0};k.ne=function(a){this.ia&=~If;a&64&&(this.ia|=If)};function Ge(a,b){a.ia=a.ia|Qd|Jf;b&&a.Ra&&a.Ra.call(a.b,b)}k.Hd=function(a,b){var c=this.M;q(this,a,null,b,"DATA",c);this.ia&=~Gf;return c};k.Gd=function(a,b){var c=this.ia;q(this,a,null,b,"STATUS",c);return c};
function Mf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; k.Vd=function(a,b,c){q(this,a,b,c,"DATA");this.O=b;this.ia&=~(Qd|Jf);ya(this,"transmitByte("+Ea(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Pa[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.w%b,this.V&&(a=La("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Jc(this.u,this.Z,Bf(this,Kf))};k.Ud=function(a,b,c){q(this,a,b,c,"CONTROL");this.F?(this.I&&(b^this.C)&(Lf|Mf)&&(a=0,this.D?(a|=b&Lf?32:0,a|=b&Mf?320:0):(a|=b&Lf?16:0,a|=b&Mf?1048576:0),this.I.call(this.b,a)),this.C=b,this.C&Nf&&(this.F=!1)):(this.B=b,this.F=!0)};k.Td=function(a,b,c){q(this,a,b,c,"BAUDRATES");this.L=b};
var Df=12,Ef=16,Ff=192,Mf=2,Lf=32,Nf=64,Qd=1,Gf=2,Jf=4,If=128,Hf=15,Kf=240,Cf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Af=[!1,0,0,133,142,39,238],vf="buffer",xf={0:uf.prototype.Hd,1:uf.prototype.Gd},yf={0:uf.prototype.Vd,1:uf.prototype.Ud,2:uf.prototype.Td};ib(function(){for(var a=qa(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new uf(d);pa(d,c)}});
function Of(a){n.call(this,"Debugger",a);this.na=+a.base||16;this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(Of,n);Of.prototype.Kb=function(){return-1};Of.prototype.Lb=function(){};
Of.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Oa(a.substring(d,f))),d=f+1}}return b};
function Pf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function Nf(a,b,c){var d;if(b){b=Of(a,b);for(var e=0,f=!1,g=b,h=[],l=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var r=p[e++],t=r.length,r=Na(r);if(!r){f=!0;break}r=Pf(a,r,null,!1===c);if(void 0===r){f=!0;c=!1;break}h.push(r);if(e==p.length)break;var r=p[e++],A=r.length;l.length&&Qf[r]<Qf[l[l.length-1]]&&Mf(h,l,1);l.push(r);b=b.substr(t+A)}Mf(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Rf(a,null, function Qf(a,b,c){var d;if(b){b=Rf(a,b);for(var e=0,f=!1,g=b,h=[],l=[],r=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<r.length;){var u=r[e++],v=u.length,u=Oa(u);if(!u){f=!0;break}u=Sf(a,u,null,!1===c);if(void 0===u){f=!0;c=!1;break}h.push(u);if(e==r.length)break;var u=r[e++],B=u.length;l.length&&Tf[u]<Tf[l[l.length-1]]&&Pf(h,l,1);l.push(u);b=b.substr(v+B)}Pf(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Uf(a,null,
d))}return d}function Of(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=Nf(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?Sf(a,e):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.N-a.Y}if(null==d)break;b=b.replace(c[0],d.toString())}return b} d))}return d}function Rf(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=Qf(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?Vf(a,e):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.N-a.Y}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function Pf(a,b,c,d){var e;null!=b?(e=a.Hb(b),0<=e?e=a.Ib(e):(e=a.S[b],null==e&&(e=Ba(b,a.na))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e} function Sf(a,b,c,d){var e;null!=b?(e=a.Kb(b),0<=e?e=a.Lb(e):(e=a.S[b],null==e&&(e=Ca(b,a.na))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function Rf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var l=d&255,p=void 0,r=8,t="";r?32<r&&(r=32):r=32;for(var A=null==l||isNaN(l),w=p=p||r;0<r--;)w||(t=","+t,w=p),t=(A?"?":l&1?"1":"0")+t,l>>=1,w--;g=t+g;d>>=8}d=x(c,0,!0)+" "+c+". "+Ca(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e} function Uf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var l=d&255,r=void 0,u=8,v="";u?32<u&&(u=32):u=32;for(var B=null==l||isNaN(l),y=r=r||u;0<u--;)y||(v=","+v,y=r),v=(B?"?":l&1?"1":"0")+v,l>>=1,y--;g=v+g;d>>=8}d=t(c,0,!0)+" "+c+". "+Da(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function Tf(a,b){if(b)return Rf(a,b,a.S[b]);var c=0;for(b in a.S)Rf(a,b,a.S[b]),c++;return 0<c}function Sf(a,b){switch(a.na){case 8:a=Ca(b,NaN);break;case 10:a=b.toString();break;default:a=x(b,NaN)}return a}var Qf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; function Wf(a,b){if(b)return Uf(a,b,a.S[b]);var c=0;for(b in a.S)Uf(a,b,a.S[b]),c++;return 0<c}function Vf(a,b){switch(a.na){case 8:a=Da(b,NaN);break;case 10:a=b.toString();break;default:a=t(b,NaN)}return a}var Tf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Uf(a){Lf.call(this,a);this.style=Vf;this.F=Wf();this.la=Wf();this.O=Wf();this.A=[];this.j=this.I=this.w=[];Xf(this);this.W=0;Yf(this);this.Z={};Zf(this,a.messages);this.ea=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return zc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return zc(b,a)})}ba(Uf,Lf);k=Uf.prototype; function Xf(a){Of.call(this,a);this.style=Yf;this.F=Zf();this.la=Zf();this.O=Zf();this.A=[];this.j=this.I=this.w=[];$f(this);this.W=0;ag(this);this.Z={};bg(this,a.messages);this.ea=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Ac(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Ac(b,a)})}aa(Xf,Of);k=Xf.prototype;
k.Ea=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=vc(a,"messages"))&&Zf(this,a);this.ga=$f;Ld(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,l=b.length;if(c){a=ag(bg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;l--;){var r=b[e];r.type==c?p++||d.i("..."):(c=r.type,p=Cb[c],r&&d.i(x(r.id)+" %"+x(e<<d.H.g)+" %%"+x(r.J)+" "+y(r.nb)+" "+ k.Ea=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=wc(a,"messages"))&&bg(this,a);this.ga=cg;Nd(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,l=b.length;if(c){a=dg(eg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,r=0;l--;){var u=b[e];u.type==c?r++||d.i("..."):(c=u.type,r=Db[c],u&&d.i(t(u.id)+" %"+t(e<<d.H.g)+" %%"+t(u.J)+" "+x(u.pb)+" "+
y(r.size)+" "+p),c!=Yb&&(c=-1),p=0);a+=d.H.w;e++}}});sa(this)}; x(u.size)+" "+r),c!=Zb&&(c=-1),r=0);a+=d.H.w;e++}}});ta(this)};
k.ca=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",zc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,fb(c,function(){if(d.U){var a=d.U.value;d.U.value= k.ca=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Ac(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,gb(c,function(){if(d.U){var a=d.U.value;d.U.value=
"";zc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,fb(c,function(a){var b=!1;ua(d,!0)||(va(d,!0),b=cg(d,a?1:0),va(d,!1));return b}),!0}return!1};k.Ya=function(){this.U&&this.U.focus()};function ag(a){a=a&&a.J;null==a&&(a=-1);return a}k.Ga=function(a,b){var c=255,d=ag(a);-1!==d&&(c=Eb(this.H,d),b&&dg(a,b));return c};k.Cb=function(a,b){var c=65535,d=ag(a);-1!==d&&(c=Gb(this.H,d),b&&dg(a,b));return c};k.Tb=function(a,b,c){var d=ag(a);-1!==d&&(Hb(this.H,d,b),c&&dg(a,c),Ac(this.u,!0))}; "";Ac(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,gb(c,function(a){var b=!1;va(d,!0)||(wa(d,!0),b=fg(d,a?1:0),wa(d,!1));return b}),!0}return!1};k.Za=function(){this.U&&this.U.focus()};function dg(a){a=a&&a.J;null==a&&(a=-1);return a}k.Ga=function(a,b){var c=255,d=dg(a);-1!==d&&(c=Fb(this.H,d),b&&gg(a,b));return c};k.Gb=function(a,b){var c=65535,d=dg(a);-1!==d&&(c=Hb(this.H,d),b&&gg(a,b));return c};k.Xb=function(a,b,c){var d=dg(a);-1!==d&&(Ib(this.H,d,b),c&&gg(a,c),Bc(this.u,!0))};
k.wc=function(a,b,c){var d=ag(a);if(-1!==d){var e=this.H,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Pb(f,b&65535,d):(e.b[g++].ob(f,b&255,d),e.b[g&e.I].ob(0,b>>8&255,d+1));c&&dg(a,c);Ac(this.u,!0)}};function Wf(a){return{J:a,Da:!1}}function eg(a){return[a.J,a.Da]}function fg(a){return{J:a[0],Da:a[1]}} k.Qc=function(a,b,c){var d=dg(a);if(-1!==d){var e=this.H,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.I].qb(0,b>>8&255,d+1));c&&gg(a,c);Bc(this.u,!0)}};function Zf(a){return{J:a,Da:!1}}function hg(a){return[a.J,a.Da]}function ig(a){return{J:a[0],Da:a[1]}}
function bg(a,b,c){var d;c=(c?a.F:a.la).J;if(void 0!==b){d=b=Of(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=Wf(d));break}}if(d=e)return d;c=Nf(a,b,void 0)}null!=c&&(d=Wf(c));return d}function gg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.rd=a.xb(b.nc=c[2]))}function dg(a,b){null!=a.J&&(a.J+=b||1)}function hg(a){return x(a,4)} function eg(a,b,c){var d;c=(c?a.F:a.la).J;if(void 0!==b){d=b=Rf(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=Zf(d));break}}if(d=e)return d;c=Qf(a,b,void 0)}null!=c&&(d=Zf(c));return d}function jg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function gg(a,b){null!=a.J&&(a.J+=b||1)}function kg(a){return t(a,4)}
function ig(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ga(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Zf(a,b){a.K=a;a.ha=a.ud=536870912;a.V=null;a.X=[];b=a.xb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in tb)0<=Ra(b,c)&&(a.ha|=tb[c],a.i(c+" messages enabled"))}function Ld(a,b,c){for(var d in tb)if(b==tb[d]){a.Z[d]=c;break}} function lg(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ga(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function bg(a,b){a.K=a;a.ha=a.wd=536870912;a.V=null;a.X=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in tb)0<=Sa(b,c)&&(a.ha|=tb[c],a.i(c+" messages enabled"))}function Nd(a,b,c){for(var d in tb)if(b==tb[d]){a.Z[d]=c;break}}
k.Hb=function(a,b){var c;a=a.toUpperCase();null==b?c=Ra(jg,a):(c=Ra(jg,a.substr(b,2)),0>c&&(c=Ra(jg,a.substr(b,1))));return c};function Hg(a,b){var c=0;a=a.Ib(b);if(void 0!==a)switch(b){case Jg:case Kg:case Lg:case Mg:case Ng:case Og:case Pg:case Qg:c=2;break;case Rg:case Sg:case Tg:case Ug:case Vg:case Wg:case Xg:c=4}return c?x(a,c):"??"} k.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Sa(Jg,a):(c=Sa(Jg,a.substr(b,2)),0>c&&(c=Sa(Jg,a.substr(b,1))));return c};function Lg(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case Mg:case Ng:case Og:case Pg:case Qg:case Rg:case Sg:case Tg:c=2;break;case Ug:case Vg:case Wg:case Xg:case Yg:case Zg:case $g:c=4}return c?t(a,c):"??"}
k.Ib=function(a){var b;if(0<=a){var c=this.u;switch(a){case Jg:b=c.g;break;case Kg:b=c.w;break;case Lg:b=c.A;break;case Rg:b=Vc(c);break;case Mg:b=c.B;break;case Ng:b=c.C;break;case Sg:b=id(c);break;case Og:b=c.D;break;case Pg:b=c.F;break;case Tg:b=D(c);break;case Qg:b=F(c,D(c));break;case Ug:b=c.M;break;case Vg:b=c.j;break;case Wg:b=Tc(c);break;case Xg:b=Tc(c)&255|c.g<<8}}return b}; k.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case Mg:b=c.g;break;case Ng:b=c.w;break;case Og:b=c.A;break;case Ug:b=Wc(c);break;case Pg:b=c.B;break;case Qg:b=c.C;break;case Vg:b=jd(c);break;case Rg:b=c.D;break;case Sg:b=c.F;break;case Wg:b=D(c);break;case Tg:b=E(c,D(c));break;case Xg:b=c.M;break;case Yg:b=c.j;break;case Zg:b=Uc(c);break;case $g:b=Uc(c)&255|c.g<<8}}return b};
function Yg(a,b){b=Of(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Hb(b,c+1),0<=e&&(b=b.substr(0,c)+Hg(a,e)+b.substr(c+1+jg[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=Ba(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=bg(a,e))?(d=e+' "'+ig(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=bg(a,e))?(dg(d),d=e+ function ah(a,b){b=Rf(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+Lg(a,e)+b.substr(c+1+Jg[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=Ca(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=eg(a,e))?(d=e+' "'+lg(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=eg(a,e))?(gg(d),d=e+
' "'+ig(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}k.message=function(a,b){b&&(a+=" at "+hg(Wf(this.u.j).J));this.ha&1073741824?this.X.push(a):this.V&&a==this.V||(this.V=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Jc(a),a.wa=0,Ac(a)))}; ' "'+lg(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}k.message=function(a,b){b&&(a+=" at "+kg(Zf(this.u.j).J));this.ha&1073741824?this.X.push(a):this.V&&a==this.V||(this.V=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Kc(a),a.wa=0,Bc(a)))};
function za(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.ab+"."+(null!=d?"outPort":"inPort")+"("+y(c)+","+(f?f:"unknown")+(null!=d?","+Da(d):"")+")"+(null!=g?": "+Da(g):"")+(null!=e?" at "+hg(e):""))} function Aa(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+x(c)+","+(f?f:"unknown")+(null!=d?","+Ea(d):"")+")"+(null!=g?": "+Ea(g):"")+(null!=e?" at "+kg(e):""))}
function Yf(a){var b;if(Dd(a)){if(!a.D||!a.D.length){a.D=Array(Zg);for(b=0;b<a.D.length;b++)a.D[b]=Wf();a.T=0;a.i("instruction history buffer allocated")}if(!a.B||!a.B.length)for(a.B=Array(256),b=0;b<a.B.length;b++)a.B[b]=[b,0]}else a.D&&a.D.length&&a.i("instruction history buffer freed"),a.T=0,a.D=[],a.B=[]}function $g(a,b){if(!ah(a))return!1;a.u.rb(b);return!0} function ag(a){var b;if(Fd(a)){if(!a.D||!a.D.length){a.D=Array(bh);for(b=0;b<a.D.length;b++)a.D[b]=Zf();a.T=0;a.i("instruction history buffer allocated")}if(!a.B||!a.B.length)for(a.B=Array(256),b=0;b<a.B.length;b++)a.B[b]=[b,0]}else a.D&&a.D.length&&a.i("instruction history buffer freed"),a.T=0,a.D=[],a.B=[]}function ch(a,b){if(!dh(a))return!1;a.u.tb(b);return!0}
function cg(a,b,c,d){if(!ah(a))return!1;a.C=0;b||Dd(a)&&Ed(a,a.u.j,0);try{var e=a.u.Bb(b);0<e&&(a.C+=e,Ec(a.u,e,!0),Bc(a.u,e),a.N++)}catch(f){"number"!=typeof f&&(a.C=0,qa(a.u,f.stack||f.message))}!1!==d&&Ac(a.u);yc(a,c||!1);return 0<a.C}k.da=function(a){this.u&&this.u.da(a)};function yc(a,b){void 0===b&&(b=!0);a.F=Wf(a.u.j);b&&1!=a.M?bh(a):ch(a)} function fg(a,b,c,d){if(!dh(a))return!1;a.C=0;b||Fd(a)&&Gd(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.C+=e,Fc(a.u,e,!0),Cc(a.u,e),a.N++)}catch(f){"number"!=typeof f&&(a.C=0,ra(a.u,f.stack||f.message))}!1!==d&&Bc(a.u);zc(a,c||!1);return 0<a.C}k.da=function(a){this.u&&this.u.da(a)};function zc(a,b){void 0===b&&(b=!0);a.F=Zf(a.u.j);b&&1!=a.M?eh(a):fh(a)}
function ah(a){var b;if(b=a.u&&ra(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!ua(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}k.va=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};k.ua=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){Yf(this);this.N=this.Y=0;this.V=null;this.C=0;this.F=Wf(this.u.j);this.G.ka=!1;dh(this);a||yc(this)}; function dh(a){var b;if(b=a.u&&sa(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!va(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}k.va=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};k.ua=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){ag(this);this.N=this.Y=0;this.V=null;this.C=0;this.F=Zf(this.u.j);this.G.ka=!1;gh(this);a||zc(this)};
k.save=function(){var a=new Uc(this);a.set(0,eg(this.F));a.set(1,eg(this.O));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};k.restore=function(a){var b=0;void 0!==a[2]&&(this.F=fg(a[b++]),this.O=fg(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};k.start=function(a,b){this.M||this.i("running");this.G.ka=!0;this.wa=a;this.ya=b}; k.save=function(){var a=new Vc(this);a.set(0,hg(this.F));a.set(1,hg(this.O));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};k.restore=function(a){var b=0;void 0!==a[2]&&(this.F=ig(a[b++]),this.O=ig(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};k.start=function(a,b){this.M||this.i("running");this.G.ka=!0;this.wa=a;this.ya=b};
k.stop=function(a,b){if(this.G.ka){this.G.ka=!1;this.C=b-this.ya;if(!this.M){b="stopped";if(this.C){a-=this.wa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Dd(this)&&(b+=this.N+" opcodes, ",this.Y-=this.N,this.N=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else wa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}yc(this,!0);this.Ya();dh(this,this.u.j)}};function Dd(a){return 1<a.j.length||!!a.W} k.stop=function(a,b){if(this.G.ka){this.G.ka=!1;this.C=b-this.ya;if(!this.M){b="stopped";if(this.C){a-=this.wa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Fd(this)&&(b+=this.N+" opcodes, ",this.Y-=this.N,this.N=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else xa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}zc(this,!0);this.Za();gh(this,this.u.j)}};function Fd(a){return 1<a.j.length||!!a.W}
function Ed(a,b,c){var d=a.u;if(0<c&&(a.W&&!--a.W||sc(a,b,1,a.j)))return!0;0<=c&&a.B.length&&(a.N++,b=Eb(a.H,b),null!=b&&(a.B[b][1]++,b=a.D[a.T],b.J=d.j,b.Da=!1,++a.T==a.D.length&&(a.T=0)));return!1}function Pb(a,b,c){a.i("break on input from port "+y(b)+": "+x(c));a.da(!0)}function Tb(a,b,c){a.i("break on output to port "+y(b)+": "+x(c));a.da(!0)} function Gd(a,b,c){var d=a.u;if(0<c&&(a.W&&!--a.W||tc(a,b,1,a.j)))return!0;0<=c&&a.B.length&&(a.N++,b=Fb(a.H,b),null!=b&&(a.B[b][1]++,b=a.D[a.T],b.J=d.j,b.Da=!1,++a.T==a.D.length&&(a.T=0)));return!1}function Qb(a,b,c){a.i("break on input from port "+x(b)+": "+t(c));a.da(!0)}function Ub(a,b,c){a.i("break on output to port "+x(b)+": "+t(c));a.da(!0)}
function Xf(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;rc(d.b[ag(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,rc(d.b[ag(c)>>>d.g],!0);a.w=["bw"];a.oa=0}k.Pa=function(a,b,c){var d=!0;c||eh(this,a,b,!1,!0);if(a!=this.j){var e=ag(b);if(-1===e)this.i("invalid address: "+hg(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Da=!0:(fh(this,a,a.length-1,"set"),Yf(this)));return d}; function $f(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;sc(d.b[dg(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,sc(d.b[dg(c)>>>d.g],!0);a.w=["bw"];a.oa=0}k.Pa=function(a,b,c){var d=!0;c||hh(this,a,b,!1,!0);if(a!=this.j){var e=dg(b);if(-1===e)this.i("invalid address: "+kg(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Da=!0:(ih(this,a,a.length-1,"set"),ag(this)));return d};
function eh(a,b,c,d,e){var f=!1;c=ag(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==ag(h)&&(!d||h.Da)){f=!0;h.Da||e||fh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,rc(d.b[c>>>d.g],b==a.w));h.Da||Yf(a);break}}return f}function gh(a,b){for(var c=1;c<b.length;c++)fh(a,b,c);return b.length-1}function fh(a,b,c,d){c=b[c];a.i(b[0]+" "+hg(c.J)+(d?" "+d:c.nc?' "'+c.nc+'"':""))} function hh(a,b,c,d,e){var f=!1;c=dg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==dg(h)&&(!d||h.Da)){f=!0;h.Da||e||ih(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,sc(d.b[c>>>d.g],b==a.w));h.Da||ag(a);break}}return f}function jh(a,b){for(var c=1;c<b.length;c++)ih(a,b,c);return b.length-1}function ih(a,b,c,d){c=b[c];a.i(b[0]+" "+kg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function dh(a,b){if(void 0!==b)sc(a,b,1,a.j,!0),a.M=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Da){if(!eh(a,a.j,c,!0))break;b=0}}} function gh(a,b){if(void 0!==b)tc(a,b,1,a.j,!0),a.M=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Da){if(!hh(a,a.j,c,!0))break;b=0}}}
function sc(a,b,c,d,e){var f=!1;if(!a.oa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Da)for(var l=ag(h),p=0;p<c;p++)if(b+p==l){var r,f=!0;h.Da&&(eh(a,d,h,!0),e=!0);if(r=h.rd){for(var f=!1,t=0;t<r.length;t++)if(!hh(a,r[t],!0)){if(r[t].indexOf("if")){f=!0;break}for(var A=t+1;A<r.length&&r[A].indexOf("else");A++)t++;if(A==r.length){f=!0;break}}a.u.G.ka||(f=!0)}if(f){e||fh(a,d,g,"hit");break}}}a.oa--;return f} function tc(a,b,c,d,e){var f=!1;if(!a.oa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Da)for(var l=dg(h),r=0;r<c;r++)if(b+r==l){var u,f=!0;h.Da&&(hh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!kh(a,u[v],!0)){if(u[v].indexOf("if")){f=!0;break}for(var B=v+1;B<u.length&&u[B].indexOf("else");B++)v++;if(B==u.length){f=!0;break}}a.u.G.ka||(f=!0)}if(f){e||ih(a,d,g,"hit");break}}}a.oa--;return f}
function ih(a,b,c,d){for(var e=Wf(b.J),f=a.Ga(b,1),g=a.ga[f],h="",l=(a.style!=jh?kh:lh)[g[0]],p=g.length-1,r=mh,t,A=1;A<=p;A++){var w="";t=g[A];if(void 0!==t&&!(t&O&&a.style==Vf)){var u=t&nh;if(u){var B=t&oh;B?r=B:t|=r;t&ph||(t|=1==A?qh:rh);if(u&P)a:{w=a;u=t;B=b;switch(u&oh){case Q:B=x(w.Ga(B,1),2);break;case sh:B=x(w.Ga(B,1)<<24>>24,4);break;case th:B=x(w.Cb(B,2),4);break;default:w="imm("+y(u)+")";break a}w.style==jh&&u&uh?B="["+B+"]":u&vh||(B=(w.style==Vf?"$":"0x")+B);w=B}else u&vh?(w=(t&wh)>>8, function lh(a,b,c,d){for(var e=Zf(b.J),f=a.Ga(b,1),g=a.ga[f],h="",l=(a.style!=mh?nh:oh)[g[0]],r=g.length-1,u=ph,v,B=1;B<=r;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==Yf)){var w=v&qh;if(w){var C=v&rh;C?u=C:v|=u;v&sh||(v|=1==B?th:uh);if(w&P)a:{y=a;w=v;C=b;switch(w&rh){case Q:C=t(y.Ga(C,1),2);break;case vh:C=t(y.Ga(C,1)<<24>>24,4);break;case wh:C=t(y.Gb(C,2),4);break;default:y="imm("+x(w)+")";break a}y.style==mh&&w&xh?C="["+C+"]":w&yh||(C=(y.style==Yf?"$":"0x")+C);y=C}else w&yh?(y=(v&zh)>>8,
u=jg[w],a.style==jh&&t&uh&&(w==Qg&&(u="HL"),u="["+u+"]"),w=u):u&xh&&(w=(f>>3&7).toString());if(!w||!w.length){h="INVALID";break}0<h.length&&(h+=",");h+=w||"???"}}}f="";g=hg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=x(a.Ga(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=Ka(f,10);g+=t&yh?"*":" ";g+=Ka(l,7);h&&(g+=" "+h);c&&(g=Ka(g,40)+";"+c,g=a.u.G.Va?g+("cycles="+Cc(a.u).toString()+" cs="+x(a.u.ya)):g+(null!=d?"="+d.toString():""));return g} w=Jg[y],a.style==mh&&v&xh&&(y==Tg&&(w="HL"),w="["+w+"]"),y=w):w&Ah&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=kg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=t(a.Ga(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=La(f,10);g+=v&Bh?"*":" ";g+=La(l,7);h&&(g+=" "+h);c&&(g=La(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Dc(a.u).toString()+" cs="+t(a.u.ya)):g+(null!=d?"="+d.toString():""));return g}
function zh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=qd(a.u);break;case "ZF":a=pd(a.u);break;case "AF":a=od(a.u);break;case "PF":a=nd(a.u);break;case "CF":a=ld(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Ah(a,b){return jg[b]+"="+Hg(a,b)+" "}function Bh(a){return Ah(a,Jg)+Ah(a,Rg)+Ah(a,Sg)+Ah(a,Tg)+Ah(a,Ug)+zh(a,"IF")+zh(a,"SF")+zh(a,"ZF")+zh(a,"AF")+zh(a,"PF")+zh(a,"CF")}k.ec=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0}; function Ch(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=rd(a.u);break;case "ZF":a=qd(a.u);break;case "AF":a=pd(a.u);break;case "PF":a=od(a.u);break;case "CF":a=md(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Dh(a,b){return Jg[b]+"="+Lg(a,b)+" "}function Eh(a){return Dh(a,Mg)+Dh(a,Ug)+Dh(a,Vg)+Dh(a,Wg)+Dh(a,Xg)+Ch(a,"IF")+Ch(a,"SF")+Ch(a,"ZF")+Ch(a,"AF")+Ch(a,"PF")+Ch(a,"CF")}k.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ch(a,b,c){var d=[],e=ag(b)>>>0;for(b=0;b<a.A.length;b++){var f=a.A[b],g=f.J>>>0,h=f.Hd;if(e>=g&&e<g+h){e=Pa(f.dc,[e-g],a.ec);0<=e?Dh(a,b,e,d):c&&(e=~e,Dh(a,b,e-1,d),Dh(a,b,e,d));break}}return d}function Dh(a,b,c,d){var e={},f=a.A[b].dc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.A[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)} function Fh(a,b,c){var d=[],e=dg(b)>>>0;for(b=0;b<a.A.length;b++){var f=a.A[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Qa(f.zc,[e-g],a.Ac);0<=e?Gh(a,b,e,d):c&&(e=~e,Gh(a,b,e-1,d),Gh(a,b,e,d));break}}return d}function Gh(a,b,c,d){var e={},f=a.A[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.A[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Eh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=jh?kh:lh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.ga[f][0]]+" ").substr(0,5)+" ("+Da(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}} function Hh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=mh?nh:oh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.ga[f][0]]+" ").substr(0,5)+" ("+Ea(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Fh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Tf(a)||a.i("no variables"),!0;if(!c[2])return Tf(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=Nf(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1} function Ih(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Wf(a)||a.i("no variables"),!0;if(!c[2])return Wf(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=Qf(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Gh(a,b,c){var d=null;if(b=bg(a,b,!0)){var e=Ch(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+y(f)),f=e[0]+" ("+hg(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+y(f)),f=e[4]+" ("+hg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d} function Jh(a,b,c){var d=null;if(b=eg(a,b,!0)){var e=Fh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+x(f)),f=e[0]+" ("+kg(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+x(f)),f=e[4]+" ("+kg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function Hh(a,b){switch(b[1]){case "8080":a.style=Vf;break;case "8086":a.style=jh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.za=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&xc(a.u);a.i("checksums "+(a.u.G.Va?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Dc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+ function Kh(a,b){switch(b[1]){case "8080":a.style=Yf;break;case "8086":a.style=mh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.za=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&yc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Ec(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
"x)");return;case "?":a.i("debugger options:");a.i("\t8080\t\tselect 8080-style mnemonics");a.i("\t8086\t\tselect 8086-style mnemonics");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.i("unknown option: "+b[1]);return}}a.i(a.style+"-style mnemonics enabled")} "x)");return;case "?":a.i("debugger options:");a.i("\t8080\t\tselect 8080-style mnemonics");a.i("\t8086\t\tselect 8086-style mnemonics");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.i("unknown option: "+b[1]);return}}a.i(a.style+"-style mnemonics enabled")}
function bh(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=Nf(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break; function eh(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=Qf(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":C(d,f);a.F=Wf(d.j);break;case "PS":Rc(d,f);break;case "PSW":Rc(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.I=f?d.I|256:d.I&255;break;case "PF":f?nd(d)||(d.L^=1):nd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.I=f?d.I&-256:d.I|255;break;case "SF":f?qd(d)||(d.L^=192):qd(d)&&(d.L^=192);break;case "IF":d.N= case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.F=Zf(d.j);break;case "PS":Sc(d,f);break;case "PSW":Sc(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.I=f?d.I|256:d.I&255;break;case "PF":f?od(d)||(d.L^=1):od(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.I=f?d.I&-256:d.I|255;break;case "SF":f?rd(d)||(d.L^=192):rd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Ac(d);a.i("updated registers:")}a.i(Bh(a));c&&(a.F=Wf(d.j),ch(a,hg(a.F.J)))}}function Ih(a,b){b=Na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(Yg(a,c[2])):Nf(a,b,!0)}function Jh(a,b,c){var d="t"!=b;c=Pf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);eb(c,function(){return va(a,!0)&&cg(a,e,d,!1)},function(){Ac(a.u);va(a,!1)})} f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Bc(d);a.i("updated registers:")}a.i(Eh(a));c&&(a.F=Zf(d.j),fh(a,kg(a.F.J)))}}function Lh(a,b){b=Oa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(ah(a,c[2])):Qf(a,b,!0)}function Mh(a,b,c){var d="t"!=b;c=Sf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);fb(c,function(){return wa(a,!0)&&fg(a,e,d,!1)},function(){Bc(a.u);wa(a,!1)})}
function ch(a,b,c,d){if(b=bg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=bg(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=ua(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Ch(a,b),l=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=ih(a,b,g,f);a.i(f);a.F=b;e-=b.J-l;c++}}} function fh(a,b,c,d){if(b=eg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=eg(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=va(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Fh(a,b),l=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var r=h[0]+":";h[2]&&(r+=" "+h[2]);a.i(r)}h[3]&&(g=h[3],f=null);f=lh(a,b,g,f);a.i(f);a.F=b;e-=b.J-l;c++}}}
k.xb=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Na(a.substring(d,f))),d=f+1}}return b}; k.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Oa(a.substring(d,f))),d=f+1}}return b};
function hh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+hg(a.O.J)),a.F=a.O,a.L=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.V=null;if(ra(a)&&0<b.length){a.L&&(b="a "+hg(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),l=1;l<g.length;l++){var p=g.charAt(l);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(l);f.unshift(g.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var r=bg(a,f[1],!0);if(r)if(a.O= function kh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+kg(a.O.J)),a.F=a.O,a.L=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.V=null;if(sa(a)&&0<b.length){a.L&&(b="a "+kg(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),l=1;l<g.length;l++){var r=g.charAt(l);if("?"==h||"r"==h||"a">r||"z"<r){f[0]=g.substr(l);f.unshift(g.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var u=eg(a,f[1],!0);if(u)if(a.O=
r,void 0===f[2])a.i("begin assemble at "+hg(r.J)),a.L=!0,Ac(a.u);else{var t;a.i("not supported yet");t=[];if(t.length){for(var A=0;A<t.length;A++)a.Tb(r,t[A],1);a.i(ih(a,a.O))}}break;case "b":a:{var w=f[0],u=f[1],B=b;if("?"==u)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"), u,void 0===f[2])a.i("begin assemble at "+kg(u.J)),a.L=!0,Bc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(u,v[B],1);a.i(lh(a,a.O))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var S=w.charAt(1);if("l"==S){var ya;ya=0+gh(a,a.j);ya+=gh(a,a.I);(ya+=gh(a,a.w))||a.i("no breakpoints")}else if("n"==S)a.W=Pf(a,u),a.i("break after "+a.W+" instruction(s)");else if(void 0===u)a.i("missing breakpoint address");else{var K=Wf();if("*"!=u&&(K=bg(a,u,!0),!K))break a;u=y(K.J);"c"==S?null==K.J?(Xf(a),a.i("all breakpoints cleared")):eh(a,a.j,K)||eh(a,a.I,K)||eh(a,a.w,K)||a.i("breakpoint missing: "+hg(K.J)): a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+jh(a,a.j);za+=jh(a,a.I);(za+=jh(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.W=Sf(a,w),a.i("break after "+a.W+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=Zf();if("*"!=w&&(L=eg(a,w,!0),!L))break a;w=x(L.J);"c"==T?null==L.J?($f(a),a.i("all breakpoints cleared")):hh(a,a.j,L)||hh(a,a.I,L)||hh(a,a.w,L)||a.i("breakpoint missing: "+kg(L.J)):
"i"==S?a.i("breakpoint "+(Mb(a.H,K.J)?"enabled":"cleared")+": port "+u+" (input)"):"o"==S?a.i("breakpoint "+(Qb(a.H,K.J)?"enabled":"cleared")+": port "+u+" (output)"):null!=K.J&&(gg(a,K,B),"p"==S?a.Pa(a.j,K):"r"==S?a.Pa(a.I,K):"w"==S?a.Pa(a.w,K):a.i("unknown breakpoint command: "+S))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var ia,ta=f[0],ma=f[1],La=f[2],cc=f[3];if("?"==ma){var Kb="";for(ia in tb)a.Z[ia]&&(Kb&&(Kb+=","),Kb+=ia);Kb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a"); "i"==T?a.i("breakpoint "+(Lb(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(Rb(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(jg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.I,L):"w"==T?a.Pa(a.w,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],ec=f[3];if("?"==na){var Mb="";for(ja in tb)a.Z[ja]&&(Mb&&(Mb+=","),Mb+=ja);Mb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Kb.length&&a.i("dump extension commands:\n\t"+Kb)}else if("state"==ma){var he=Kh(a.R,!0);"console"==La?console.log(he):(a.ta&&(a.ta.value=""),he&&a.i(he))}else if("symbols"==ma)for(var ie=0;ie<a.A.length;ie++){var je=a.A[ie],Lb;for(Lb in je.ra)if("."!=Lb.charAt(0)){var kg=je.ra[Lb].o;if(void 0!==kg){var lg=je.ra[Lb].l;lg&&(Lb=lg);a.i(hg(kg)+" "+ a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Mb.length&&a.i("dump extension commands:\n\t"+Mb)}else if("state"==na){var ie=Nh(a.R,!0);"console"==Ma?console.log(ie):(a.ta&&(a.ta.value=""),ie&&a.i(ie))}else if("symbols"==na)for(var je=0;je<a.A.length;je++){var ke=a.A[je],Nb;for(Nb in ke.ra)if("."!=Nb.charAt(0)){var mg=ke.ra[Nb].o;if(void 0!==mg){var ng=ke.ra[Nb].l;ng&&(Nb=ng);a.i(kg(mg)+" "+
Lb)}}}else{if("d"==ta){for(ia in tb)if(f[1]==ia){var mg=a.Z[ia];mg?(f.shift(),f.shift(),mg(f)):a.i("no dump registered for "+ma);break a}ma||(ta=a.za||"db")}else a.za=ta;if("dh"==ta){var ng=ma,og=La,pg="",qg=0,Ma=a.T,Xa=a.D;if(Xa.length){var Aa=+ng||a.sa,hc=+og||10;isNaN(Aa)?Aa=hc:pg="more ";Aa>Xa.length&&(a.i("note: only "+Xa.length+" available"),Aa=Xa.length);Ma-=Aa;0>Ma&&(null==Xa[Xa.length-1].J?(Aa=Ma+Aa,Ma=0):Ma+=Xa.length);var ke=[];"call"==og&&(hc=1E5,ke=["CALL"]);for(void 0!==ng&&a.i(Aa+" instructions earlier:");0< Nb)}}}else{if("d"==ua){for(ja in tb)if(f[1]==ja){var og=a.Z[ja];og?(f.shift(),f.shift(),og(f)):a.i("no dump registered for "+na);break a}na||(ua=a.za||"db")}else a.za=ua;if("dh"==ua){var pg=na,qg=Ma,rg="",sg=0,Na=a.T,Za=a.D;if(Za.length){var Ba=+pg||a.sa,jc=+qg||10;isNaN(Ba)?Ba=jc:rg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var le=[];"call"==qg&&(jc=1E5,le=["CALL"]);for(void 0!==pg&&a.i(Ba+" instructions earlier:");0<
hc&&Ma!=a.T;){var rg=Xa[Ma++];if(null==rg.J)break;var ic=Wf(rg.J),ni=Aa--,sg=ih(a,ic,"history",ni);(!ke.length||0<=sg.indexOf(ke[0]))&&a.i(sg);ic.Gb&&(Ma+=ic.Gb,hc-=ic.Gb,Aa-=ic.Gb);Ma>=Xa.length&&(Ma=0);a.sa=Aa;qg++;hc--}}qg||(a.i("no "+pg+"history available"),a.sa=void 0)}else{var Wc=bg(a,ma);if(Wc){var Xc=0;La&&("l"==La.charAt(0)&&(La=La.substr(1)||cc),Xc=Pf(a,La)>>>0,65536<Xc&&(Xc=65536));for(var jc="",Yc="dd"==ta?4:"dw"==ta?2:1,Zc=Yc*Xc||128,oi=Zc+15>>4||1;oi--&&0<Zc;){var $c=0,le=0,kc,me="", jc&&Na!=a.T;){var tg=Za[Na++];if(null==tg.J)break;var kc=Zf(tg.J),qi=Ba--,ug=lh(a,kc,"history",qi);(!le.length||0<=ug.indexOf(le[0]))&&a.i(ug);kc.Jb&&(Na+=kc.Jb,jc-=kc.Jb,Ba-=kc.Jb);Na>=Za.length&&(Na=0);a.sa=Ba;sg++;jc--}}sg||(a.i("no "+rg+"history available"),a.sa=void 0)}else{var Xc=eg(a,na);if(Xc){var Yc=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||ec),Yc=Sf(a,Ma)>>>0,65536<Yc&&(Yc=65536));for(var lc="",Zc="dd"==ua?4:"dw"==ua?2:1,$c=Zc*Yc||128,ri=$c+15>>4||1;ri--&&0<$c;){var ad=0,me=0,mc,ne="",
tg="",ma=hg(Wc.J);for(kc=16;0<kc&&0<Zc;kc--){var ad=a.Ga(Wc,1),$c=$c|ad<<(le++<<3);le==Yc&&(me+=x($c,2*Yc),me+=1==Yc?9==kc?"-":" ":" ",$c=le=0);tg+=32<=ad&&128>ad?String.fromCharCode(ad):".";Zc--}jc&&(jc+="\n");jc+=ma+" "+me+(kc?"":" "+tg)}jc&&a.i(jc);a.la=Wc}}}}break;case "e":if("else"==f[0])break;var bd=1,ug=255,vg=a.Ga,wg=a.Tb;"ew"==f[0]&&(bd=2,ug=65535,vg=a.Cb,wg=a.wc);var xg=bd<<1,yg=f[1];if(null==yg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a"); vg="",na=kg(Xc.J);for(mc=16;0<mc&&0<$c;mc--){var bd=a.Ga(Xc,1),ad=ad|bd<<(me++<<3);me==Zc&&(ne+=t(ad,2*Zc),ne+=1==Zc?9==mc?"-":" ":" ",ad=me=0);vg+=32<=bd&&128>bd?String.fromCharCode(bd):".";$c--}lc&&(lc+="\n");lc+=na+" "+ne+(mc?"":" "+vg)}lc&&a.i(lc);a.la=Xc}}}}break;case "e":if("else"==f[0])break;var cd=1,wg=255,xg=a.Ga,yg=a.Xb;"ew"==f[0]&&(cd=2,wg=65535,xg=a.Gb,yg=a.Qc);var zg=cd<<1,Ag=f[1];if(null==Ag)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");
else{var cd=bg(a,yg);if(cd)for(var dd=2;dd<f.length;dd++){var lc=Nf(a,f[dd]);if(void 0===lc){a.i("unrecognized value: "+f[dd]);break}lc&~ug&&a.i("warning: "+x(lc)+" exceeds "+bd+"-byte value");var pi=vg.call(a,cd);a.i("changing "+hg(cd.J)+" from "+x(pi,xg,!0)+" to "+x(lc,xg,!0));wg.call(a,cd,lc,bd)}}break;case "f":Eh(a,f[1]);break;case "g":a:{var zg=f[1],qi=b;if(void 0!==zg){var ne=bg(a,zg,!0);if(!ne)break a;gg(a,ne,qi);a.Pa(a.j,ne,!0)}$g(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break; else{var dd=eg(a,Ag);if(dd)for(var ed=2;ed<f.length;ed++){var nc=Qf(a,f[ed]);if(void 0===nc){a.i("unrecognized value: "+f[ed]);break}nc&~wg&&a.i("warning: "+t(nc)+" exceeds "+cd+"-byte value");var si=xg.call(a,dd);a.i("changing "+kg(dd.J)+" from "+t(si,zg,!0)+" to "+t(nc,zg,!0));yg.call(a,dd,nc,cd)}}break;case "f":Hh(a,f[1]);break;case "g":a:{var Bg=f[1],ti=b;if(void 0!==Bg){var oe=eg(a,Bg,!0);if(!oe)break a;jg(a,oe,ti);a.Pa(a.j,oe,!0)}ch(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var oe;if(a.G.ka)oe="halting",a.da();else{if(ua(a,!0))break a;oe="already halted"}c||a.i(oe)}break;case "i":if("if"==f[0]){var pe;var mc=b.substr(2),mc=Na(mc);Nf(a,mc)?(c||a.i("true: "+mc),pe=!0):(c||a.i("false: "+mc),pe=!1);pe||(d=!1);break}if("int"==f[0]){var ed;var ri=f[1];if(a.u.N&512){var qe=Nf(a,ri);null==qe?ed=!1:(a.i("requesting interrupt level "+qe),Cd(a.u,qe),ed=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),ed=!1;ed||(d=!1);break}var re=f[1];if(re&&"?"!=re){var se= case "h":a:{var pe;if(a.G.ka)pe="halting",a.da();else{if(va(a,!0))break a;pe="already halted"}c||a.i(pe)}break;case "i":if("if"==f[0]){var qe;var oc=b.substr(2),oc=Oa(oc);Qf(a,oc)?(c||a.i("true: "+oc),qe=!0):(c||a.i("false: "+oc),qe=!1);qe||(d=!1);break}if("int"==f[0]){var fd;var ui=f[1];if(a.u.N&512){var re=Qf(a,ui);null==re?fd=!1:(a.i("requesting interrupt level "+re),Ed(a.u,re),fd=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),fd=!1;fd||(d=!1);break}var se=f[1];if(se&&"?"!=se){var te=
Pf(a,re);if(void 0!==se){var si=Ob(a.H,se);a.i(y(se)+": "+Da(si))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var ti=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var te=0,Ag=Wf(),nc=Wf(a.u.M);for(a.i("stack trace for "+hg(nc.J));10>te;){for(var sb=null,ui=256;65536>nc.J>>>0;){Ag.J=a.Cb(nc,2);if(null==nc.J||!ui--)break;for(var vi=a,fd=Ag, Sf(a,se);if(void 0!==te){var vi=Pb(a.H,te);a.i(x(te)+": "+Ea(vi))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var wi=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var ue=0,Cg=Zf(),pc=Zf(a.u.M);for(a.i("stack trace for "+kg(pc.J));10>ue;){for(var ub=null,xi=256;65536>pc.J>>>0;){Cg.J=a.Gb(pc,2);if(null==pc.J||!xi--)break;for(var yi=a,gd=Cg,
Bg=null,oc=fd.J,Cg=oc,ue=1;6>=ue&&oc;ue++){if(2<ue){fd.J=oc;var gd=ih(vi,fd);if(0<=gd.indexOf("CALL")){var Dg=gd.indexOf(" ");if(oc+(gd.indexOf(" ",Dg+1)-Dg-1)/2==Cg){Bg=gd;break}}}oc--}fd.J=Cg;if(sb=Bg)break}if(!sb||null==sb)break;var Eg=null;if("ks"==ti){var Fg=sb.match(/[0-9A-F]+$/);Fg&&(Eg=Gh(a,Fg[0]))}sb=Ka(sb,50)+" ;"+(Eg||"stack="+hg(nc.J));a.i(sb);te++}te||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Gh(a,f[1],!0);break;case "m":a:{var Ya,Za=null,aa=f[1];"?"==aa&&(aa=void 0); Dg=null,qc=gd.J,Eg=qc,ve=1;6>=ve&&qc;ve++){if(2<ve){gd.J=qc;var hd=lh(yi,gd);if(0<=hd.indexOf("CALL")){var Fg=hd.indexOf(" ");if(qc+(hd.indexOf(" ",Fg+1)-Fg-1)/2==Eg){Dg=hd;break}}}qc--}gd.J=Eg;if(ub=Dg)break}if(!ub||null==ub)break;var Gg=null;if("ks"==wi){var Hg=ub.match(/[0-9A-F]+$/);Hg&&(Gg=Jh(a,Hg[0]))}ub=La(ub,50)+" ;"+(Gg||"stack="+kg(pc.J));a.i(ub);ue++}ue||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Jh(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==aa){var jb=0;if("all"==aa)jb=1878917119,aa=null;else if("on"==aa)Za=!0,aa=null;else if("off"==aa)Za=!1,aa=null;else{"keys"==aa&&(aa="key");"kbd"==aa&&(aa="keyboard");for(Ya in tb)if(aa==Ya){jb=tb[Ya];Za=!!(a.ha&jb);break}if(!jb){a.i("unknown message category: "+aa);break a}}if(jb)if("on"==f[2])a.ha|=jb,Za=!0;else if("off"==f[2]&&(a.ha&=~jb,Za=!1,1073741824==jb)){for(var ve=0;ve<a.X.length;ve++)a.i(a.X[ve]);a.X=[]}}var wi=0,pc="";for(Ya in tb)if(!aa||aa==Ya){var xi=!!(a.ha&tb[Ya]);if(null=== if(void 0!==ba){var mb=0;if("all"==ba)mb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in tb)if(ba==$a){mb=tb[$a];ab=!!(a.ha&mb);break}if(!mb){a.i("unknown message category: "+ba);break a}}if(mb)if("on"==f[2])a.ha|=mb,ab=!0;else if("off"==f[2]&&(a.ha&=~mb,ab=!1,1073741824==mb)){for(var we=0;we<a.X.length;we++)a.i(a.X[we]);a.X=[]}}var zi=0,rc="";for($a in tb)if(!ba||ba==$a){var Ai=!!(a.ha&tb[$a]);if(null===
Za||Za==xi)pc&&(pc+=","),++wi%10||(pc+="\n\t"),"key"==Ya&&(Ya="keys"),pc+=Ya}void 0===aa&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==Za?Za?"messages on: ":"messages off: ":"message categories:\n\t")+(pc||"none"));Yf(a)}break;case "o":var we=f[1],yi=f[2];if(we&&"?"!=we){var xe=Pf(a,we,"port #"),ye=Pf(a,yi);void 0!==xe&&void 0!==ye&&(Sb(a.H,xe,ye),a.i(y(xe)+": "+Da(ye)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state"); ab||ab==Ai)rc&&(rc+=","),++zi%10||(rc+="\n\t"),"key"==$a&&($a="keys"),rc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(rc||"none"));ag(a)}break;case "o":var xe=f[1],Bi=f[2];if(xe&&"?"!=xe){var ye=Sf(a,xe,"port #"),ze=Sf(a,Bi);void 0!==ye&&void 0!==ze&&(Tb(a.H,ye,ze),a.i(x(ye)+": "+Ea(ze)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){Ih(a,b.substr(5));break}var Gg="pr"==f[0]?1:0,zi=1+Gg;if(a.M)a.i("step in progress");else{var ze=Wf(a.u.j);switch(a.Ga(ze)){case 205:a.M=zi,dg(ze,3)}a.M?(a.Pa(a.j,ze,!0),$g(a)||(a.R&&a.R.Ya(),a.M=0)):Jh(a,Gg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}bh(a,f);break;case "s":Hh(a,f);break;case "t":Jh(a,f[0],f[1]);break;case "u":ch(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Fh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.32.2 ("+a.u.ub+",RELEASE"+ break;case "p":if("print"==f[0]){Lh(a,b.substr(5));break}var Ig="pr"==f[0]?1:0,Ci=1+Ig;if(a.M)a.i("step in progress");else{var Ae=Zf(a.u.j);switch(a.Ga(Ae)){case 205:a.M=Ci,gg(Ae,3)}a.M?(a.Pa(a.j,Ae,!0),ch(a)||(a.R&&a.R.Za(),a.M=0)):Mh(a,Ig?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}eh(a,f);break;case "s":Kh(a,f);break;case "t":Mh(a,f[0],f[1]);break;case "u":fh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Ih(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.32.2 ("+a.u.xb+",RELEASE"+
(qb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ua());break;case "?":if(f[1]){Ih(a,b.substr(1));break}var Ae="commands:",Be;for(Be in Lh)Ae+="\n"+Ka(Be,9)+Lh[Be];Dd(a)||(Ae+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ae);break;default:a.i("unknown command: "+b),d=!1}}}catch(Ig){a.i("debugger error: "+(Ig.stack||Ig.message)),d=!1}return d}function zc(a,b,c){b=a.xb(b,c);for(var d in b)if(!hh(a,b[+d]))return!1;return!0} (rb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Va());break;case "?":if(f[1]){Lh(a,b.substr(1));break}var Be="commands:",Ce;for(Ce in Oh)Be+="\n"+La(Ce,9)+Oh[Ce];Fd(a)||(Be+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Be);break;default:a.i("unknown command: "+b),d=!1}}}catch(Kg){a.i("debugger error: "+(Kg.stack||Kg.message)),d=!1}return d}function Ac(a,b,c){b=a.Ab(b,c);for(var d in b)if(!kh(a,b[+d]))return!1;return!0}
var Lh={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"}, var Oh={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
Vf=8080,jh=8086,kh="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),lh="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "), Yf=8080,mh=8086,nh="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),oh="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
Kg=0,Lg=1,Mg=2,Ng=3,Og=4,Pg=5,Qg=6,Jg=7,Rg=8,Sg=9,Tg=10,Ug=11,Vg=12,Wg=13,Xg=14,jg="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),oh=15,nh=240,wh=3840,ph=61440,mh=0,Q=1,sh=2,th=3,vh=16,P=32,uh=64,xh=128,R=Jg<<8|vh|Q,T=Kg<<8|vh|Q,U=Lg<<8|vh|Q,V=Mg<<8|vh|Q,W=Ng<<8|vh|Q,X=Og<<8|vh|Q,Y=Pg<<8|vh|Q,Z=Qg<<8|vh|Q|uh,Mh=Rg<<8|vh|th,Nh=Sg<<8|vh|th,Oh=Tg<<8|vh|th,Ph=Ug<<8|vh|th,Qh=Xg<<8|vh|th,rh=4096,qh=8192,O=16384,yh=32768,$f=[[45],[42,Mh,P],[71,Mh|uh,R|O],[29,Mh],[28,T],[22,T],[44,T,P],[63],[45,yh],[21, Ng=0,Og=1,Pg=2,Qg=3,Rg=4,Sg=5,Tg=6,Mg=7,Ug=8,Vg=9,Wg=10,Xg=11,Yg=12,Zg=13,$g=14,Jg="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),rh=15,qh=240,zh=3840,sh=61440,ph=0,Q=1,vh=2,wh=3,yh=16,P=32,xh=64,Ah=128,R=Mg<<8|yh|Q,S=Ng<<8|yh|Q,U=Og<<8|yh|Q,V=Pg<<8|yh|Q,W=Qg<<8|yh|Q,X=Rg<<8|yh|Q,Y=Sg<<8|yh|Q,Z=Tg<<8|yh|Q|xh,Ph=Ug<<8|yh|wh,Qh=Vg<<8|yh|wh,Rh=Wg<<8|yh|wh,Sh=Xg<<8|yh|wh,Th=$g<<8|yh|wh,uh=4096,th=8192,O=16384,Bh=32768,cg=[[45],[42,Ph,P],[71,Ph|xh,R|O],[29,Ph],[28,S],[22,S],[44,S,P],[63],[45,Bh],[21,
Oh|O,Mh],[40,R|O,Mh|uh],[23,Mh],[28,U],[22,U],[44,U,P],[64],[45,yh],[42,Nh,P],[71,Nh|uh,R|O],[29,Nh],[28,V],[22,V],[44,V,P],[52],[45,yh],[21,Oh|O,Nh],[40,R|O,Nh|uh],[23,Nh],[28,W],[22,W],[44,W,P],[53],[45,yh],[42,Oh,P],[68,51|uh,Oh|O],[29,Oh],[28,X],[22,X],[44,X,P],[20],[45,yh],[21,Oh|O,Oh],[41,Oh|O,51|uh],[23,Oh],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,yh],[42,Ph,P],[70,51|uh,R|O],[29,Ph],[28,Z],[22,Z],[44,Z,P],[72],[45,yh],[21,Oh|O,Ph],[39,R|O,51|uh],[23,Ph],[28,R],[22,R],[44,R,P],[17],[43,T,T],[43, Rh|O,Ph],[40,R|O,Ph|xh],[23,Ph],[28,U],[22,U],[44,U,P],[64],[45,Bh],[42,Qh,P],[71,Qh|xh,R|O],[29,Qh],[28,V],[22,V],[44,V,P],[52],[45,Bh],[21,Rh|O,Qh],[40,R|O,Qh|xh],[23,Qh],[28,W],[22,W],[44,W,P],[53],[45,Bh],[42,Rh,P],[68,51|xh,Rh|O],[29,Rh],[28,X],[22,X],[44,X,P],[20],[45,Bh],[21,Rh|O,Rh],[41,Rh|O,51|xh],[23,Rh],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Bh],[42,Sh,P],[70,51|xh,R|O],[29,Sh],[28,Z],[22,Z],[44,Z,P],[72],[45,Bh],[21,Rh|O,Sh],[39,R|O,51|xh],[23,Sh],[28,R],[22,R],[44,R,P],[17],[43,S,S],[43,
T,U],[43,T,V],[43,T,W],[43,T,X],[43,T,Y],[43,T,Z],[43,T,R],[43,U,T],[43,U,U],[43,U,V],[43,U,W],[43,U,X],[43,U,Y],[43,U,Z],[43,U,R],[43,V,T],[43,V,U],[43,V,V],[43,V,W],[43,V,X],[43,V,Y],[43,V,Z],[43,V,R],[43,W,T],[43,W,U],[43,W,V],[43,W,W],[43,W,X],[43,W,Y],[43,W,Z],[43,W,R],[43,X,T],[43,X,U],[43,X,V],[43,X,W],[43,X,X],[43,X,Y],[43,X,Z],[43,X,R],[43,Y,T],[43,Y,U],[43,Y,V],[43,Y,W],[43,Y,X],[43,Y,Y],[43,Y,Z],[43,Y,R],[43,Z,T],[43,Z,U],[43,Z,V],[43,Z,W],[43,Z,X],[43,Z,Y],[26],[43,Z,R],[43,R,T],[43,R, S,U],[43,S,V],[43,S,W],[43,S,X],[43,S,Y],[43,S,Z],[43,S,R],[43,U,S],[43,U,U],[43,U,V],[43,U,W],[43,U,X],[43,U,Y],[43,U,Z],[43,U,R],[43,V,S],[43,V,U],[43,V,V],[43,V,W],[43,V,X],[43,V,Y],[43,V,Z],[43,V,R],[43,W,S],[43,W,U],[43,W,V],[43,W,W],[43,W,X],[43,W,Y],[43,W,Z],[43,W,R],[43,X,S],[43,X,U],[43,X,V],[43,X,W],[43,X,X],[43,X,Y],[43,X,Z],[43,X,R],[43,Y,S],[43,Y,U],[43,Y,V],[43,Y,W],[43,Y,X],[43,Y,Y],[43,Y,Z],[43,Y,R],[43,Z,S],[43,Z,U],[43,Z,V],[43,Z,W],[43,Z,X],[43,Z,Y],[26],[43,Z,R],[43,R,S],[43,R,
U],[43,R,V],[43,R,W],[43,R,X],[43,R,Y],[43,R,Z],[43,R,R],[3,R|O,T],[3,R|O,U],[3,R|O,V],[3,R|O,W],[3,R|O,X],[3,R|O,Y],[3,R|O,Z],[3,R|O,R],[2,R|O,T],[2,R|O,U],[2,R|O,V],[2,R|O,W],[2,R|O,X],[2,R|O,Y],[2,R|O,Z],[2,R|O,R],[73,R|O,T],[73,R|O,U],[73,R|O,V],[73,R|O,W],[73,R|O,X],[73,R|O,Y],[73,R|O,Z],[73,R|O,R],[66,R|O,T],[66,R|O,U],[66,R|O,V],[66,R|O,W],[66,R|O,X],[66,R|O,Y],[66,R|O,Z],[66,R|O,R],[5,R|O,T],[5,R|O,U],[5,R|O,V],[5,R|O,W],[5,R|O,X],[5,R|O,Y],[5,R|O,Z],[5,R|O,R],[76,R|O,T],[76,R|O,U],[76,R| U],[43,R,V],[43,R,W],[43,R,X],[43,R,Y],[43,R,Z],[43,R,R],[3,R|O,S],[3,R|O,U],[3,R|O,V],[3,R|O,W],[3,R|O,X],[3,R|O,Y],[3,R|O,Z],[3,R|O,R],[2,R|O,S],[2,R|O,U],[2,R|O,V],[2,R|O,W],[2,R|O,X],[2,R|O,Y],[2,R|O,Z],[2,R|O,R],[73,R|O,S],[73,R|O,U],[73,R|O,V],[73,R|O,W],[73,R|O,X],[73,R|O,Y],[73,R|O,Z],[73,R|O,R],[66,R|O,S],[66,R|O,U],[66,R|O,V],[66,R|O,W],[66,R|O,X],[66,R|O,Y],[66,R|O,Z],[66,R|O,R],[5,R|O,S],[5,R|O,U],[5,R|O,V],[5,R|O,W],[5,R|O,X],[5,R|O,Y],[5,R|O,Z],[5,R|O,R],[76,R|O,S],[76,R|O,U],[76,R|
O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,T],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,T],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,Mh],[34,51],[30,51],[11,51],[51,Mh],[4,R|O,P|Q],[65,xh],[62],[54],[38,51],[30,51|yh],[15,51],[7,51],[1,R|O,P|Q],[65,xh],[57],[50,Nh],[33,51],[48,P|Q,R|O],[10,51],[51,Nh],[74,R|O,P|Q],[65,xh],[55],[54,yh],[31,51],[27,R|O,P|Q],[8,51],[7,51|yh],[67,R|O,P|Q],[65, O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,S],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,S],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,Ph],[34,51],[30,51],[11,51],[51,Ph],[4,R|O,P|Q],[65,Ah],[62],[54],[38,51],[30,51|Bh],[15,51],[7,51],[1,R|O,P|Q],[65,Ah],[57],[50,Qh],[33,51],[48,P|Q,R|O],[10,51],[51,Qh],[74,R|O,P|Q],[65,Ah],[55],[54,Bh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Bh],[67,R|O,P|Q],[65,
xh],[61],[50,Oh],[37,51],[78,Ph|uh|O,Oh|O],[14,51],[51,Oh],[6,R|O,P|Q],[65,xh],[60],[49,Oh],[36,51],[75,Oh|O,Nh|O],[13,51],[7,51|yh],[77,R|O,P|Q],[65,xh],[59],[50,Qh],[35,51],[24],[12,51],[51,Qh],[47,R|O,P|Q],[65,xh],[56],[69,Ph|O,Oh|O],[32,51],[25],[9,51],[7,51|yh],[19,R|O,P|Q],[65,xh]],Zg=1E3;hb(function(){for(var a=pa(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=na(c),d=new Uf(d);oa(d,c)}}); Ah],[61],[50,Rh],[37,51],[78,Sh|xh|O,Rh|O],[14,51],[51,Rh],[6,R|O,P|Q],[65,Ah],[60],[49,Rh],[36,51],[75,Rh|O,Qh|O],[13,51],[7,51|Bh],[77,R|O,P|Q],[65,Ah],[59],[50,Th],[35,51],[24],[12,51],[51,Th],[47,R|O,P|Q],[65,Ah],[56],[69,Sh|O,Rh|O],[32,51],[25],[9,51],[7,51|Bh],[19,R|O,P|Q],[65,Ah]],bh=1E3;ib(function(){for(var a=qa(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Xf(d);pa(d,c)}});
function Rh(a,b,c){n.call(this,"Computer",a,67108864);this.G.ja=!1;Sh(this,b);this.L=vc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=Th;this.F=null;this.C=this.O=!1;this.U=vc(this,"url")||"";(Math.random()+.1).toString(36);this.g=Uh(this);if(this.u=la("CPU",this.id)){this.K=la("Debugger",this.id);this.A=[];for(b=null;b=vb(this,"Video",b);)this.A.push(b);this.H=new xb({id:this.bb+".bus",busWidth:this.T},this.u,this.K);var d,e=ja(this.id);if((this.B=la("Panel",this.id))&&this.B.ta)for(b= function Uh(a,b,c){n.call(this,"Computer",a,67108864);this.G.ja=!1;Vh(this,b);this.L=wc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=Wh;this.F=null;this.C=this.O=!1;this.U=wc(this,"url")||"";(Math.random()+.1).toString(36);this.g=Xh(this);if(this.u=ma("CPU",this.id)){this.K=ma("Debugger",this.id);this.A=[];for(b=null;b=wb(this,"Video",b);)this.A.push(b);this.H=new yb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=ka(this.id);if((this.B=ma("Panel",this.id))&&this.B.ta)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ta=this.B.ta;this.i("PC8080 v1.32.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ea&&d.Ea(this,this.H,this.u,this.K);b=null;d=vc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=vc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=Th),this.b&&(this.I=new Uc(this,"1.32.2"),Vh(this.I)? 0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ta=this.B.ta;this.i("PC8080 v1.32.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ea&&d.Ea(this,this.H,this.u,this.K);b=null;d=wc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=wc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=Wh),this.b&&(this.I=new Vc(this,"1.32.2"),Yh(this.I)?
b=null:delete this.I);!b&&this.b&&(b=Wh(this))&&(this.C=!0);if(b){var g=this;Sa(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Na(b):"")+")")):(g.F=b,g.O=!0);sa(g)})}else sa(this);this.P.power||(this.L=!0);!c&&this.L&&Xh(this,this.lb)}else q("Unable to find CPU component")}ba(Rh,n);function Sh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b} b=null:delete this.I);!b&&this.b&&(b=Zh(this))&&(this.C=!0);if(b){var g=this;Ta(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Oa(b):"")+")")):(g.F=b,g.O=!0);ta(g)})}else ta(this);this.P.power||(this.L=!0);!c&&this.L&&$h(this,this.nb)}else p("Unable to find CPU component")}aa(Uh,n);function Vh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){p(d.message+" ("+c+")")}}a.S=b}
function vc(a,b,c){var d=b.toLowerCase(),d=cb(b)||cb(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Xh(a,b,c){for(var d=ja(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ra(f)){ra(f,function(){Xh(a,b,c)});return}}b.call(a,c)} function wc(a,b,c){var d=b.toLowerCase(),d=db(b)||db(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function $h(a,b,c){for(var d=ka(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!sa(f)){sa(f,function(){$h(a,b,c)});return}}b.call(a,c)}
function Yh(a,b){var c=new Uc(a,"1.32.2",Zh);if(Vh(c)&&$h(c)){var d=c.get(ai),e=b?b.get(ai):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Rh.prototype; function ai(a,b){var c=new Vc(a,"1.32.2",bi);if(Yh(c)&&ci(c)){var d=c.get(di),e=b?b.get(di):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Uh.prototype;
k.lb=function(a){void 0===a&&(a=this.b||(this.F?bi:Th));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new Uc(this,"1.32.2");if(a==ci)b=!0;else if(a>Th){if(Vh(d,this.F)){this.w=new Uc(this,"1.32.2",di);Vh(this.w)&&(ei(this,d),a=fi,gi(this.w));this.w.set(ai,Qa());hi(this.w);var e=this.b&&!this.C;if(a==bi||ha("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=$h(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Vh(d,g):("error"==f&&"no machine state"!= k.nb=function(a){void 0===a&&(a=this.b||(this.F?ei:Wh));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new Vc(this,"1.32.2");if(a==fi)b=!0;else if(a>Wh){if(Yh(d,this.F)){this.w=new Vc(this,"1.32.2",gi);Yh(this.w)&&(hi(this,d),a=ii,ji(this.w));this.w.set(di,Ra());ki(this.w);var e=this.b&&!this.C;if(a==ei||ia("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ci(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Yh(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(ab(ii,""),this.g=null)):this.i(f+": "+g),gi(d),Vh(d)?(c=$h(d),e=!0):c=!1))}e&&Yh(this,c?d:null)}else a==fi&&d.clear()}else Yh(this);delete this.F;delete this.I}e=ja(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=ji(this,g,d,b,c));b=[d,a,c];a!=ci?Xh(this,this.gc,b):this.gc(b)}}; g?(this.aa("Error: "+g),"unable to verify user"==g&&(bb(li,""),this.g=null)):this.i(f+": "+g),ji(d),Yh(d)?(c=ci(d),e=!0):c=!1))}e&&ai(this,c?d:null)}else a==ii&&d.clear()}else ai(this);delete this.F;delete this.I}e=ka(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=mi(this,g,d,b,c));b=[d,a,c];a!=fi?$h(this,this.Cc,b):this.Cc(b)}};
function ji(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.va){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.va(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=Th,window&&window.location.reload()):a.N=!0,b.va(null),e=!1)}if(!d&&b.cc)for(a=b.cc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} function mi(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.va){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.va(f,d)&&f&&(p("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=Wh,window&&window.location.reload()):a.N=!0,b.va(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.gc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(ji(this,this.u,b,c,a),this.u.jb());this.N&&(ei(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0}; k.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(mi(this,this.u,b,c,a),this.u.lb());this.N&&(hi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function ei(a,b){if(ha("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PC8080",ver:"1.32.2"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Sa("http://www.pcjs.org/api/v1/report",d,!0)}} function hi(a,b){if(ia("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PC8080",ver:"1.32.2"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Ta("http://www.pcjs.org/api/v1/report",d,!0)}}
function Kh(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new Uc(a,"1.32.2"),g=new Uc(a,"1.32.2",Zh),h=Qa();g.set(ai,h);f.set(ai,h);f.set(ki,"1.32.2");f.set(li,window?window.location.href:null);f.set(mi,Ua());a.u&&a.u.ua&&(c&&a.u.da(),d=a.u.ua(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=ja(a.id),l=0;l<h.length;l++){var p=h[l];p.G.ja&&(p.ua&&(d=p.ua(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Ai(a, function Nh(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new Vc(a,"1.32.2"),g=new Vc(a,"1.32.2",bi),h=Ra();g.set(di,h);f.set(di,h);f.set(ni,"1.32.2");f.set(oi,window?window.location.href:null);f.set(pi,Va());a.u&&a.u.ua&&(c&&a.u.da(),d=a.u.ua(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=ka(a.id),l=0;l<h.length;l++){var r=h[l];r.G.ja&&(r.ua&&(d=r.ua(b,c),"object"===typeof d&&f.set(r.id,d)),c&&(r.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Di(a,
a.g,f.toString()),hi(g)&&hi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Bi),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.H&&this.H.reset&&(xa(this,"Resetting "+this.H.type),this.H.reset());for(var a=ja(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(xa(this,"Resetting "+c.type),c.reset())}}; a.g,f.toString()),ki(g)&&ki(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ei),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.H&&this.H.reset&&(ya(this,"Resetting "+this.H.type),this.H.reset());for(var a=ka(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(ya(this,"Resetting "+c.type),c.reset())}};
k.start=function(a,b){for(var c=ja(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};k.stop=function(a,b){for(var c=ja(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; k.start=function(a,b){for(var c=ka(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};k.stop=function(a,b){for(var c=ka(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
k.ca=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?Kh(d,!1,!0):Xh(d,d.lb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=ha("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Kh(d,a,!0);!a&&d.M?window&&window.location.reload():d.lb(Th)}else d.reset(),d.u&&d.u.jb()},!0;case "save":if(Ga())c.parentNode.removeChild(c);else return this.P[b]= k.ca=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?Nh(d,!1,!0):$h(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=ia("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Nh(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(Wh)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(Ha())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=Uh(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=Kh(d,b);b?Ai(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1}; c,c.onclick=function(){var a=Xh(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=Nh(d,b);b?Di(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function Uh(a,b){var c=a.g;c||((c=$a(ii),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Ci(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c} function Xh(a,b){var c=a.g;c||((c=Ya(li),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Fi(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Ci(a,b){a.g=null;b=Sa(Ha()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ab(ii,b.data),a.g=b.data)}catch(d){q(d.message+" ("+c+")")}return a.g}function Wh(a){var b=null;a.g&&(b=Ha()+"/api/v1/user?req=load&user="+a.g+"&state="+Di(a,"1.32.2"));return b} function Fi(a,b){a.g=null;b=Ta(Ia()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(bb(li,b.data),a.g=b.data)}catch(d){p(d.message+" ("+c+")")}return a.g}function Zh(a){var b=null;a.g&&(b=Ia()+"/api/v1/user?req=load&user="+a.g+"&state="+Gi(a,"1.32.2"));return b}
function Ai(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Di(a,"1.32.2");d.data=c;b=Sa(Ha()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.aa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.aa(c),ab(ii,""),a.g=null)}} function Di(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Gi(a,"1.32.2");d.data=c;b=Ta(Ia()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.aa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.aa(c),bb(li,""),a.g=null)}}
function vb(a,b,c){a=ja(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}k.Ya=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.V&&d.V.focus();!a&&window&&window.scrollTo(b,c)}}; function wb(a,b,c){a=ka(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}k.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.V&&d.V.focus();!a&&window&&window.scrollTo(b,c)}};
function Kc(a,b){a.u&&(a=a.u,a.gb&&(b||!a.G.ka||a.G.fc)&&(J(a,"A",a.g),J(a,"B",a.w),J(a,"C",a.A),J(a,"BC",Vc(a),4),J(a,"D",a.B),J(a,"E",a.C),J(a,"DE",id(a),4),J(a,"H",a.D),J(a,"L",a.F),J(a,"HL",D(a),4),J(a,"SP",a.M,4),J(a,"PC",a.j,4),b=Tc(a),J(a,"PS",b,4),J(a,"IF",b&512?1:0,1),J(a,"SF",b&128?1:0,1),J(a,"ZF",b&64?1:0,1),J(a,"AF",b&16?1:0,1),J(a,"PF",b&4?1:0,1),J(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ka&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")} function Lc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.ka||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",Wc(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",jd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=Uc(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ka&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var di="failsafe",Zh="validate",ai="timestamp",ki="version",li="url",mi="browser",ii="user",ci=-1,Th=0,bi=1,fi=2,Bi=3;hb(function(){for(var a=pa(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=na(c),c=pa(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=na(f),g=new Rh(g,d,!0);oa(g,f);g.L&&Xh(g,g.lb)}});ib.show.push(function(){for(var a=pa(document,"pc8080","computer"),b=0;b<a.length;b++){var c=na(a[b]);(c=la("Computer",c.id))&&c.W&&!c.G.ja&&c.lb(ci)}}); var gi="failsafe",bi="validate",di="timestamp",ni="version",oi="url",pi="browser",li="user",fi=-1,Wh=0,ei=1,ii=2,Ei=3;ib(function(){for(var a=qa(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=oa(c),c=qa(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=oa(f),g=new Uh(g,d,!0);pa(g,f);g.L&&$h(g,g.nb)}});jb.show.push(function(){for(var a=qa(document,"pc8080","computer"),b=0;b<a.length;b++){var c=oa(a[b]);(c=ma("Computer",c.id))&&c.W&&!c.G.ja&&c.nb(fi)}});
ib.exit.push(function(){for(var a=pa(document,"pc8080","computer"),b=0;b<a.length;b++){var c=na(a[b]);(c=la("Computer",c.id))&&c.G.ja&&Kh(c,!(!c.b||c.D),!0)}});function Uc(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.H=!1;this.key=Di(a,b,c);gi(this,a.xd)}k=Uc.prototype;k.set=function(a,b){try{this.b[a]=b}catch(c){}};k.get=function(a){return this.b[a]||null};k.data=function(){return this.b}; jb.exit.push(function(){for(var a=qa(document,"pc8080","computer"),b=0;b<a.length;b++){var c=oa(a[b]);(c=ma("Computer",c.id))&&c.G.ja&&Nh(c,!(!c.b||c.D),!0)}});function Vc(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.H=!1;this.key=Gi(a,b,c);ji(this,a.Ad)}k=Vc.prototype;k.set=function(a,b){try{this.b[a]=b}catch(c){}};k.get=function(a){return this.b[a]||null};k.data=function(){return this.b};
function Vh(a,b){return b?(a.g=b,a.u=!0,a.H=!1,!0):a.u?!0:Va()&&(b=$a(a.key))?(a.g=b,a.u=!0):!1}function $h(a){var b=!0;if(!a.H)try{a.b=JSON.parse(a.g),a.H=!0}catch(c){q(c.message||c),b=!1}return b}function hi(a){var b=!0;if(Va()){var c=JSON.stringify(a.b);ab(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.b?JSON.stringify(this.b):this.g};function gi(a,b){a.g="";a.b={};a.u=a.H=!1;b&&a.set("parms",b)} function Yh(a,b){return b?(a.g=b,a.u=!0,a.H=!1,!0):a.u?!0:Wa()&&(b=Ya(a.key))?(a.g=b,a.u=!0):!1}function ci(a){var b=!0;if(!a.H)try{a.b=JSON.parse(a.g),a.H=!0}catch(c){p(c.message||c),b=!1}return b}function ki(a){var b=!0;if(Wa()){var c=JSON.stringify(a.b);bb(a.key,c)||(p("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.b?JSON.stringify(this.b):this.g};function ji(a,b){a.g="";a.b={};a.u=a.H=!1;b&&a.set("parms",b)}
k.clear=function(a){gi(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Di(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Ei=0; k.clear=function(a){ji(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Gi(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Hi=0;
function Fi(a,b,c,d,e,f){e("Loading "+a+"...");Sa(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Gi(h,a,b,c,d,e,f)})} function Ii(a,b,c,d,e,f){e("Loading "+a+"...");Ta(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Ji(h,a,b,c,d,e,f)})}
function Gi(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(da(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"), function Ji(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ea(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Hi(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""), a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Ki(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
null)} null)}
function Hi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Sa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],p,r=/( [a-z]+=)(['"])(.*?)\2/g;p=r.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,""); function Ki(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ta(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],r,u=/( [a-z]+=)(['"])(.*?)\2/g;r=u.exec(f);)l=0>l.indexOf(r[1])?l.replace(">",r[0]+">"):l.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);Hi(a,b,c)}})}else c(a,null)} a=a.replace(d[0],g);Ki(a,b,c)}})}else c(a,null)}
function Ii(a,b,c,d){function e(a){if(void 0===h){var b=g&&pa(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=Ia(a))}function f(a){e("Error: "+a);l&&(--Ei||mb(!0));l=!1}var g,h,l=!0;Ei++;ea[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=p:t.appendChild(document.createTextNode(p));r.appendChild(t)}c|| function Li(a,b,c,d){function e(a){if(void 0===h){var b=g&&qa(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=Ja(a))}function f(a){e("Error: "+a);l&&(--Hi||nb(!0));l=!1}var g,h,l=!0;Hi++;fa[a]={};try{if(g=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=r:v.appendChild(document.createTextNode(r));u.appendChild(v)}c||
(c="/versions/pc8080/1.32.2/components.xsl");p=function(d,h){h?Fi(c,null,null,!1,e,function(d,l){l?(da(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--Ei||mb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Ei||mb(!0)):f("invalid machine element: "+ (c="/versions/pc8080/1.32.2/components.xsl");r=function(d,h){h?Ii(c,null,null,!1,e,function(d,l){l?(ea(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--Hi||nb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Hi||nb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Fi(b,a,d,!0,e,p):Gi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(A){f(A.message)}return l}window.embedPC8080=function(a,b,c,d){mb(!1);return Ii(a,b,c,d)};window.findMachineComponent=function(a,b){return la(b,a+".machine")};window.enableEvents=mb;window.sendEvent=ob;})(); a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Ii(b,a,d,!0,e,r):Ji(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(B){f(B.message)}return l}window.embedPC8080=function(a,b,c,d){nb(!1);return Li(a,b,c,d)};window.findMachineComponent=function(a,b){return ma(b,a+".machine")};window.enableEvents=nb;window.sendEvent=pb;})();

View file

@ -29,183 +29,188 @@
http://pcjs.org/modules/pc8080/lib/debugger.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2017
*/ */
var k;function m(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]} var k;function l(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
var p={Jd:0,Md:1,Nd:2,Od:3,Pd:4,Qd:5,Rd:6,Sd:7,Td:8,Ud:9,Vd:10,Wd:11,Xd:12,Yd:13,Zd:14,$d:15,ae:16,be:17,ce:18,de:19,ee:20,fe:21,ge:22,he:23,ie:24,je:25,ke:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ua:65,Sb:66,Ub:67,rb:68,E:69,Xb:70,Yb:71,Zb:72,$b:73,gc:74,hc:75,tb:76,oc:77,pc:78,sc:79,tc:80,Q:81,zc:82,Cc:83,Hc:84,Ic:85,Jc:86,Kc:87, var n={Yd:0,ae:1,be:2,ce:3,de:4,ee:5,fe:6,ge:7,he:8,ie:9,je:10,ke:11,le:12,me:13,ne:14,oe:15,pe:16,qe:17,re:18,se:19,te:20,ue:21,ve:22,we:23,xe:24,ye:25,ze:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ia:65,sb:66,tb:67,kb:68,E:69,wb:70,xb:71,yb:72,zb:73,Ab:74,Bb:75,lb:76,Fb:77,Gb:78,Jb:79,Kb:80,Q:81,Lb:82,Nb:83,Ob:84,Pb:85,Rb:86,Sb:87,
Mc:88,Nc:89,ib:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Oc:97,Te:98,Ue:99,d:100,e:101,Ve:102,We:103,Xe:104,Ye:105,Ze:106,k:107,$e:108,af:109,n:110,bf:111,p:112,q:113,r:114,cf:115,t:116,df:117,ef:118,ff:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,le:127}; Ub:88,Vb:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Wb:97,Rc:98,Tc:99,d:100,e:101,Xc:102,Yc:103,Zc:104,$c:105,jd:106,k:107,kd:108,ld:109,n:110,md:111,p:112,q:113,r:114,Kd:115,t:116,Ld:117,Md:118,Nd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ae:127},aa={59:186,61:187,173:189,224:91};
function q(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ab=b.comment;this.Rc=b;this.exports={};this.w=this.bindings={};a=this.id.indexOf(".");0>a?this.Wa=this.id:(this.Ia=this.id.substr(0,a),this.Wa=this.id.substr(a+1));this.i={ready:!1,Ya:!1,kb:!1,U:!1,error:!1};this.ab=null;this.i.error=!1;this.J=this.m=this.u=this.D=this.pa=null;r.push(this)}function aa(a,b,c){ba[a]&&b&&(ba[a][b]=c)}function da(){return Date.now()||+new Date} function p(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Tb=b.comment;this.Uc=b;this.exports={};this.w=this.bindings={};a=this.id.indexOf(".");0>a?this.Ya=this.id:(this.Ka=this.id.substr(0,a),this.Ya=this.id.substr(a+1));this.i={ready:!1,ab:!1,nb:!1,U:!1,error:!1};this.eb=null;this.i.error=!1;this.J=this.m=this.u=this.D=this.pa=null;r.push(this)}function ba(a,b,c){ca[a]&&b&&(ca[a][b]=c)}function ea(){return Date.now()||+new Date}
function ea(a,b,c){b||u((c?c+": ":"")+a)}function u(a){window&&window.alert(a)}function fa(a){var b=!1;window&&(b=window.confirm(a));return b}function ga(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<r.length;b++){var d=r[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ha(a){if(void 0!==a){var b;for(b=0;b<r.length;b++)if(r[b].id===a)return r[b]}return null} function fa(a,b,c){b||t((c?c+": ":"")+a)}function t(a){window&&window.alert(a)}function ga(a){var b=!1;window&&(b=window.confirm(a));return b}function ha(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<r.length;b++){var d=r[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ia(a){if(void 0!==a){var b;for(b=0;b<r.length;b++)if(r[b].id===a)return r[b]}return null}
function ia(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<r.length;d++)if(c)c==r[d]&&(c=null);else if(!(a!=r[d].type||b&&r[d].id.indexOf(b)))return r[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b} function ja(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<r.length;d++)if(c)c==r[d]&&(c=null);else if(!(a!=r[d].type||b&&r[d].id.indexOf(b)))return r[d]}return null}function u(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
function ja(a,b){b=y(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pc8080-binding":(g=w(f))&&g.binding&&a.S(g.type,g.binding,f,g.value),l=h.length}}}} function ka(a,b){b=x(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),m=0;m<h.length;m++)switch(g=h[m],g){case "pc8080-binding":(g=u(f))&&g.binding&&a.S(g.type,g.binding,f,g.value),m=h.length}}}}
function y(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}k=q.prototype;k.toString=function(){return this.name?this.name:this.id||this.type}; function x(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}k=p.prototype;k.toString=function(){return this.name?this.name:this.id||this.type};
k.S=function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.pa=this.w[b]=c,c.value="",this.aa=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.G=function(a){this.aa(a,this.Wa)}),!0;default:return!1}};k.log=function(){};k.aa=function(){}; k.S=function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.pa=this.w[b]=c,c.value="",this.aa=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.G=function(a){this.aa(a,this.Ya)}),!0;default:return!1}};k.log=function(){};k.aa=function(){};
k.status=function(a){this.aa(this.Wa+": "+a)};k.G=function(a,b,c){ea(a,b,c||this.type)};function ka(a,b){b&&(a.i.ready?b():a.ab=b);return a.i.ready}function z(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.ab;a.ab=null;b&&b()}}function la(a,b){if(a.i.kb)return a.i.Ya=!1,a.i.kb=!1;if(a.i.error)return a.aa(a.toString()+" error"),!1;a.i.Ya=b;return a.i.Ya}k.ca=function(){return this.i.U=!0};k.ba=function(a,b){b&&(this.i.U=!1);return!0}; k.status=function(a){this.aa(this.Ya+": "+a)};k.G=function(a,b,c){fa(a,b,c||this.type)};function la(a,b){b&&(a.i.ready?b():a.eb=b);return a.i.ready}function z(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.eb;a.eb=null;b&&b()}}function ma(a,b){if(a.i.nb)return a.i.ab=!1,a.i.nb=!1;if(a.i.error)return a.aa(a.toString()+" error"),!1;a.i.ab=b;return a.i.ab}k.ca=function(){return this.i.U=!0};k.ba=function(a,b){b&&(this.i.U=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var ba=window?window.PCjs.Machines:{},r=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}); window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var ca=window?window.PCjs.Machines:{},r=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b}); Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
function ma(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2== function na(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==
e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function B(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function na(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function oa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b} e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function A(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function oa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function pa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function pa(){var a=qa();return-1!==a.indexOf("pcjs.org",a.length-8)}function ra(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} function qa(){var a=ra();return-1!==a.indexOf("pcjs.org",a.length-8)}function sa(a){return a.replace(/[&<>"']/g,function(a){return ta[a]})}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var sa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},va={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; var ta={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},va={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
function wa(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} function xa(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function xa(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a, function ya(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",n;for(n in b)b.hasOwnProperty(n)&&(l&&(l+="&"),l+=n+"="+encodeURIComponent(b[n]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g} f,e))});if(b&&"object"==typeof b){var m="",q;for(q in b)b.hasOwnProperty(q)&&(m&&(m+="&"),m+=q+"="+encodeURIComponent(b[q]));m=m.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(m)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function ya(a,b){var c,d={W:null,sa:null,Aa:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Aa=g.load;d.ta=g.exec;if(e=g.bytes)d.W=e;else if(e=g.words)for(d.W=Array(2*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&255,d.W[f++]=e[c]>>8&255;else if(e=g.data)for(d.W=Array(4*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]& function za(a,b){var c,d={W:null,sa:null,Aa:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Aa=g.load;d.ta=g.exec;if(e=g.bytes)d.W=e;else if(e=g.words)for(d.W=Array(2*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&255,d.W[f++]=e[c]>>8&255;else if(e=g.data)for(d.W=Array(4*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&
255,d.W[f++]=e[c]>>8&255,d.W[f++]=e[c]>>16&255,d.W[f++]=e[c]>>24&255;else d.W=g;d.sa=g.symbols;d.W.length?1==d.W.length&&(u(d.W[0]),d=null):(u("Empty resource: "+a),d=null)}catch(h){u("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){u("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.W=e)}return d} 255,d.W[f++]=e[c]>>8&255,d.W[f++]=e[c]>>16&255,d.W[f++]=e[c]>>24&255;else d.W=g;d.sa=g.symbols;d.W.length?1==d.W.length&&(t(d.W[0]),d=null):(t("Empty resource: "+a),d=null)}catch(h){t("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){t("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.W=e)}return d}
function qa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function za(){if(null==Aa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Aa=a}return Aa}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} function ra(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Aa(){if(null==Ba){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ba=a}return Ba}function Ca(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Da(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1} function Da(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ea(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ea(a){if(!Fa){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Fa=c}return Fa[a]}function Ga(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ha(a){Ia.init.push(a)} function Fa(a){if(!Ga){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ga=c}return Ga[a]}function Ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ia(a){Ja.init.push(a)}
function Ja(a){if(Ka)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){ea("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function La(a){!Ka&&a?(Ka=!0,Ma&&Na("init"),Oa&&Na("show")):Ka=a}function Na(a){Ia[a]&&Ja(Ia[a])}var Fa=null,Ia={init:[],show:[],exit:[]},Ma=!1,Oa=!1,Ka=!0,Aa=null;Ga("onload",function(){Ma=!0;Ja(Ia.init)});Ga("onpageshow",function(){Oa=!0;Ja(Ia.show)}); function Ka(a){if(La)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){fa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ma(a){!La&&a?(La=!0,Na&&Oa("init"),Pa&&Oa("show")):La=a}function Oa(a){Ja[a]&&Ka(Ja[a])}var Ga=null,Ja={init:[],show:[],exit:[]},Na=!1,Pa=!1,La=!0,Ba=null;Ha("onload",function(){Na=!0;Ka(Ja.init)});Ha("onpageshow",function(){Pa=!0;Ka(Ja.show)});
Ga(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Ja(Ia.exit)}); Ha(Ea("Opera")||Ea("iOS")?"onunload":"onbeforeunload",function(){Ka(Ja.exit)});
var Pa="undefined"!==typeof ArrayBuffer,Qa=[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, var Qa="undefined"!==typeof ArrayBuffer,Ra=[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];function Ra(a){q.call(this,"Panel",a)}m(Ra,q);Ra.prototype.S=function(a,b,c,d){return this.D&&this.D.S(a,b,c,d)||this.m&&this.m.S(a,b,c,d)||this.h&&this.h.S(a,b,c,d)?!0:q.prototype.S.call(this,a,b,c,d)};Ra.prototype.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;this.h=C(a,"Keyboard")};Ra.prototype.ca=function(a,b){b||Sa();return!0};Ra.prototype.ba=function(){return!0}; 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];function Sa(a){p.call(this,"Panel",a)}l(Sa,p);Sa.prototype.S=function(a,b,c,d){return this.D&&this.D.S(a,b,c,d)||this.m&&this.m.S(a,b,c,d)||this.h&&this.h.S(a,b,c,d)?!0:p.prototype.S.call(this,a,b,c,d)};Sa.prototype.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;this.h=Ta(a,"Keyboard")};Sa.prototype.ca=function(a,b){b||Ua();return!0};Sa.prototype.ba=function(){return!0};
function Sa(){for(var a=!1,b=y(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=w(d),f=ha(e.id);f||(a=!0,f=new Ra(e));ja(f,d);a&&z(f)}}Ha(Sa); function Ua(){for(var a=!1,b=x(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=u(d),f=ia(e.id);f||(a=!0,f=new Sa(e));ka(f,d);a&&z(f)}}Ia(Ua);
function Ua(a,b,c){q.call(this,"Bus",a);this.m=b;this.J=c;this.s=a.busWidth||16;this.v=Math.pow(2,this.s);this.g=this.v-1|0;this.b=(this.s>>1)+2;10>this.b&&(this.b=10);15<this.b&&(this.b=15);this.c=1<<this.b;this.A=this.c>>2;this.f=this.c-1;this.h=this.v/this.c|0;this.o=this.h-1;this.j=[];this.l=[];this.B=[];this.C=[];a=new D;Va(a,this.J);this.a=Array(this.h);for(b=0;b<this.h;b++)this.a[b]=a;z(this)}m(Ua,q);Ua.prototype.reset=function(){};Ua.prototype.ca=function(a,b){b||this.reset();return!0}; function Wa(a,b,c){p.call(this,"Bus",a);this.m=b;this.J=c;this.s=a.busWidth||16;this.v=Math.pow(2,this.s);this.g=this.v-1|0;this.b=(this.s>>1)+2;10>this.b&&(this.b=10);15<this.b&&(this.b=15);this.c=1<<this.b;this.A=this.c>>2;this.f=this.c-1;this.h=this.v/this.c|0;this.o=this.h-1;this.j=[];this.l=[];this.B=[];this.C=[];a=new C;Xa(a,this.J);this.a=Array(this.h);for(b=0;b<this.h;b++)this.a[b]=a;z(this)}l(Wa,p);Wa.prototype.reset=function(){};Wa.prototype.ca=function(a,b){b||this.reset();return!0};
function Wa(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=g*a.c,n=a.c-(e-l);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Pa)return h.fb+=h.Pa-e,h.Pa=e,!0;if(e>=h.Pa+h.fb){n=h.size-(e-l);n>f&&(n=f);h.fb=e-h.Pa+n;e=l+a.c;f-=n;g++;continue}}return Xa(Ya,e,f)}e=new D(e,n,a.c,d);Va(e,a.J,h);a.a[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Za[d]+" at "+B(b,4,!0)),!0):Xa($a,b,c)}function ab(a,b){return a.a[(b&a.g)>>>a.b].eb(b&a.f,b)} function Ya(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],m=g*a.c,q=a.c-(e-m);q>f&&(q=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Ra)return h.ib+=h.Ra-e,h.Ra=e,!0;if(e>=h.Ra+h.ib){q=h.size-(e-m);q>f&&(q=f);h.ib=e-h.Ra+q;e=m+a.c;f-=q;g++;continue}}return Za($a,e,f)}e=new C(e,q,a.c,d);Xa(e,a.J,h);a.a[g++]=e;e=m+a.c;f-=q}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ab[d]+" at "+A(b,4,!0)),!0):Za(bb,b,c)}function cb(a,b){return a.a[(b&a.g)>>>a.b].hb(b&a.f,b)}
function bb(a,b){var c=b&a.f,d=(b&a.g)>>>a.b;return c!=a.f?a.a[d].td(c,b):a.a[d++].Sa(c,b)|a.a[d&a.o].Sa(0,b+1)<<8}function cb(a,b,c){a.a[(b&a.g)>>>a.b].Lb(b&a.f,c&255,b)}function db(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.b;d!=a.f?a.a[e].Dd(d,c&65535,b):(a.a[e++].Ta(d,c&255,b),a.a[e&a.o].Ta(0,c>>8&255,b+1))} function db(a,b){var c=b&a.f,d=(b&a.g)>>>a.b;return c!=a.f?a.a[d].Ed(c,b):a.a[d++].Ua(c,b)|a.a[d&a.o].Ua(0,b+1)<<8}function eb(a,b,c){a.a[(b&a.g)>>>a.b].gc(b&a.f,c&255,b)}function fb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.b;d!=a.f?a.a[e].Sd(d,c&65535,b):(a.a[e++].Va(d,c&255,b),a.a[e&a.o].Va(0,c>>8&255,b+1))}
function eb(a){for(var b=0,c=[],d=0;d<a.h;d++){var e=a.a[d];if(e.ja||e.Db){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var n=e[g],v=g+1;v<e.length&&e[v]===n;)v++;l[h++]=v-g;l[h++]=n;g=v}l.length<e.length&&(e=l)}c[f]=e}}return c}function fb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.j[l]?u("Input port "+B(l,4,!0)+" already registered"):f.j[l]=[h,!1]}} function gb(a){for(var b=0,c=[],d=0;d<a.h;d++){var e=a.a[d];if(e.ja||e.Zb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var q=e[g],w=g+1;w<e.length&&e[w]===q;)w++;m[h++]=w-g;m[h++]=q;g=w}m.length<e.length&&(e=m)}c[f]=e}}return c}function hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var m=+e+d;m<=g;m++)void 0!==f.j[m]?t("Input port "+A(m,4,!0)+" already registered"):f.j[m]=[h,!1]}}
function gb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.l[l]?u("Output port "+B(l,4,!0)+" already registered"):f.l[l]=[h,!1]}}function Xa(a,b,c){u("Memory block error ("+a+": "+B(b)+","+B(c)+")");return!1}var Ya=1,$a=2,hb;if(Pa){var ib=new ArrayBuffer(2);(new DataView(ib)).setUint16(0,256,!0);hb=256===(new Uint16Array(ib))[0]}else hb=!1;var jb=hb; function ib(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var m=+e+d;m<=g;m++)void 0!==f.l[m]?t("Output port "+A(m,4,!0)+" already registered"):f.l[m]=[h,!1]}}function Za(a,b,c){t("Memory block error ("+a+": "+A(b)+","+A(c)+")");return!1}var $a=1,bb=2,jb;if(Qa){var kb=new ArrayBuffer(2);(new DataView(kb)).setUint16(0,256,!0);jb=256===(new Uint16Array(kb))[0]}else jb=!1;var lb=jb;
function D(a,b,c,d){this.id=kb+=2;this.a=null;this.Pa=a;this.fb=b;this.size=c||0;this.type=d||mb;this.w=d==nb;Va(this);this.ja=this.Db=!1;if(c)if(Pa)this.m=new ArrayBuffer(c),this.u=new DataView(this.m,0,c),this.b=new Uint8Array(this.m,0,c),this.g=new Uint16Array(this.m,0,c>>1),this.a=new Int32Array(this.m,0,c>>2),ob(this,jb?pb:qb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;ob(this,rb)}else ob(this)}k=D.prototype; function C(a,b,c,d){this.id=nb+=2;this.a=null;this.Ra=a;this.ib=b;this.size=c||0;this.type=d||ob;this.w=d==pb;Xa(this);this.ja=this.Zb=!1;if(c)if(Qa)this.m=new ArrayBuffer(c),this.u=new DataView(this.m,0,c),this.b=new Uint8Array(this.m,0,c),this.g=new Uint16Array(this.m,0,c>>1),this.a=new Int32Array(this.m,0,c>>2),qb(this,lb?rb:sb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;qb(this,tb)}else qb(this)}k=C.prototype;
k.save=function(){var a,b;if(Pa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.a;return a};k.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Pa)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.a=a;return this.ja=!0}return!1};function ob(a,b){b||(b=sb);tb(a,b,void 0);ub(a,b,void 0)}function tb(a,b,c){c&&a.c||(a.Sa=b[0]||a.Hb,a.td=b[2]||a.Ib);if(c||void 0===c)a.eb=b[0]||a.Hb,a.Jb=b[2]||a.Ib} k.save=function(){var a,b;if(Qa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.a;return a};k.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Qa)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.a=a;return this.ja=!0}return!1};function qb(a,b){b||(b=ub);vb(a,b,void 0);wb(a,b,void 0)}function vb(a,b,c){c&&a.c||(a.Ua=b[0]||a.cc,a.Ed=b[2]||a.dc);if(c||void 0===c)a.hb=b[0]||a.cc,a.ec=b[2]||a.dc}
function ub(a,b,c){c&&a.f||(a.Ta=!a.w&&b[1]||a.Mb,a.Dd=!a.w&&b[3]||a.Nb);if(c||void 0===c)a.Lb=b[1]||a.Mb,a.h=b[3]||a.Nb}function Va(a,b,c){a.J=b;a.c=a.f=0;c&&((a.c=c.c)&&tb(a,vb,!1),(a.f=c.f)&&ub(a,vb,!1))}k.Hb=function(){return 255};k.Mb=function(){};k.Ib=function(a,b){return this.Sa(a++,b++)|this.Sa(a,b)<<8};k.Nb=function(a,b,c){this.Ta(a++,b&255,c++);this.Ta(a,b>>8,c)};k.sd=function(a){return this.a[a>>2]>>>((a&3)<<3)&255}; function wb(a,b,c){c&&a.f||(a.Va=!a.w&&b[1]||a.hc,a.Sd=!a.w&&b[3]||a.ic);if(c||void 0===c)a.gc=b[1]||a.hc,a.h=b[3]||a.ic}function Xa(a,b,c){a.J=b;a.c=a.f=0;c&&((a.c=c.c)&&vb(a,xb,!1),(a.f=c.f)&&wb(a,xb,!1))}k.cc=function(){return 255};k.hc=function(){};k.dc=function(a,b){return this.Ua(a++,b++)|this.Ua(a,b)<<8};k.ic=function(a,b,c){this.Va(a++,b&255,c++);this.Va(a,b>>8,c)};k.Dd=function(a){return this.a[a>>2]>>>((a&3)<<3)&255};
k.xd=function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8};k.Cd=function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ja=!0};k.Hd=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ja=!0};k.qd=function(a,b){return this.eb(a,b)};k.vd=function(a,b){return this.Jb(a,b)};k.Ad=function(a,b,c){this.w||this.Lb(a,b,c)}; k.Id=function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8};k.Rd=function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ja=!0};k.Wd=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ja=!0};k.Bd=function(a,b){return this.hb(a,b)};k.Gd=function(a,b){return this.ec(a,b)};k.Pd=function(a,b,c){this.w||this.gc(a,b,c)};
k.Fd=function(a,b,c){this.w||this.h(a,b,c)};k.pd=function(a){return this.b[a]};k.rd=function(a){return this.b[a]};k.ud=function(a){return this.u.getUint16(a,!0)};k.wd=function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.g[a>>1]};k.zd=function(a,b){this.b[a]=b;this.ja=!0};k.Bd=function(a,b){this.b[a]=b;this.ja=!0};k.Ed=function(a,b){this.u.setUint16(a,b,!0);this.ja=!0};k.Gd=function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.g[a>>1]=b;this.ja=!0}; k.Ud=function(a,b,c){this.w||this.h(a,b,c)};k.Ad=function(a){return this.b[a]};k.Cd=function(a){return this.b[a]};k.Fd=function(a){return this.u.getUint16(a,!0)};k.Hd=function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.g[a>>1]};k.Od=function(a,b){this.b[a]=b;this.ja=!0};k.Qd=function(a,b){this.b[a]=b;this.ja=!0};k.Td=function(a,b){this.u.setUint16(a,b,!0);this.ja=!0};k.Vd=function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.g[a>>1]=b;this.ja=!0};
var mb=0,nb=2,Za=["NONE","RAM","ROM","VID","H/W"],kb=0,sb=[],rb=[D.prototype.sd,D.prototype.Cd,D.prototype.xd,D.prototype.Hd],vb=[D.prototype.qd,D.prototype.Ad,D.prototype.vd,D.prototype.Fd];if(Pa)var qb=[D.prototype.pd,D.prototype.zd,D.prototype.ud,D.prototype.Ed],pb=[D.prototype.rd,D.prototype.Bd,D.prototype.wd,D.prototype.Gd]; var ob=0,pb=2,ab=["NONE","RAM","ROM","VID","H/W"],nb=0,ub=[],tb=[C.prototype.Dd,C.prototype.Rd,C.prototype.Id,C.prototype.Wd],xb=[C.prototype.Bd,C.prototype.Pd,C.prototype.Gd,C.prototype.Ud];if(Qa)var sb=[C.prototype.Ad,C.prototype.Od,C.prototype.Fd,C.prototype.Td],rb=[C.prototype.Cd,C.prototype.Qd,C.prototype.Hd,C.prototype.Vd];
function wb(a,b){q.call(this,"CPU",a);var c=a.multiplier||1;this.na=a.cycles||b;this.O=c;this.Da=Math.round(this.na/1E4)/100;this.X=this.Da*this.O;this.i.ka=!1;this.i.Kb=!1;this.i.Qa=a.autoStart;this.i.Bb=!1;this.i.Za=!1;this.wa=this.ea=0;this.xa=a.csStart;this.ha=a.csInterval;this.la=a.csStop;this.H=[];this.jb=this.gb.bind(this);z(this)}m(wb,q);k=wb.prototype; function yb(a,b){p.call(this,"CPU",a);var c=a.multiplier||1;this.na=a.cycles||b;this.O=c;this.Ea=Math.round(this.na/1E4)/100;this.X=this.Ea*this.O;this.i.ka=!1;this.i.fc=!1;this.i.Sa=a.autoStart;this.i.Xb=!1;this.i.bb=!1;this.wa=this.ea=0;this.xa=a.csStart;this.ha=a.csInterval;this.la=a.csStop;this.H=[];this.mb=this.jb.bind(this);z(this)}l(yb,p);k=yb.prototype;
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.J=d;for(b=0;b<xb.length;b++)(c=this.w[xb[b]])&&this.D.S(null,xb[b],c);this.N=C(a,"ChipSet");a=yb(a,"autoStart");null!=a&&(this.i.Qa="true"==a?!0:"false"==a?!1:!!a);z(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.ca=function(a,b){if(!b){if(a&&this.restore){zb(this);if(!this.restore(a))return!1;Ab(this)}else this.reset();this.aa("No debugger detected")}Bb(this);return!0}; k.qa=function(a,b,c,d){this.D=a;this.u=b;this.J=d;for(b=0;b<zb.length;b++)(c=this.w[zb[b]])&&this.D.S(null,zb[b],c);this.N=Ta(a,"ChipSet");a=Ab(a,"autoStart");null!=a&&(this.i.Sa="true"==a?!0:"false"==a?!1:!!a);z(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.ca=function(a,b){if(!b){if(a&&this.restore){Bb(this);if(!this.restore(a))return!1;Cb(this)}else this.reset();this.aa("No debugger detected")}Db(this);return!0};
k.ba=function(a){return a?this.save():!0};k.Qa=function(){return this.i.Qa||void 0===this.w.run?(this.gb(),!0):!1};k.Eb=function(){return 0};function Ab(a){void 0===a.xa&&(a.xa=0);void 0===a.ha&&(a.ha=-1);void 0===a.la&&(a.la=-1);a.i.Za=0<=a.xa&&0<a.ha;a.i.Za&&(a.wa=0,a.ea=a.xa-a.I)} k.ba=function(a){return a?this.save():!0};k.Sa=function(){return this.i.Sa||void 0===this.w.run?(this.jb(),!0):!1};k.$b=function(){return 0};function Cb(a){void 0===a.xa&&(a.xa=0);void 0===a.ha&&(a.ha=-1);void 0===a.la&&(a.la=-1);a.i.bb=0<=a.xa&&0<a.ha;a.i.bb&&(a.wa=0,a.ea=a.xa-a.I)}
k.S=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.i.U)a=!0;else{var b=null,c,h=ga(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.i.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.i.U);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.ab?" (waiting for notification)":""))+".");a=!1}a&&(d.i.ka?Cb(d):d.gb())};a=!0; k.S=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.i.U)a=!0;else{var b=null,c,h=ha(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.i.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.i.U);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.eb?" (waiting for notification)":""))+".");a=!1}a&&(d.i.ka?Eb(d):d.jb())};a=!0;
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Db(d,d.O<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",a=!0}return a};function Eb(a,b){var c=1;b&&1<a.O&&a.R&&(c=a.R/a.Da);a.Na=Math.round(1E3/Fb);a.ya=Math.floor(a.na/Fb*c);b||(a.ma=a.ya);a.Fa=0}function Gb(a){return a.I+a.P+a.da-a.a}function zb(a){a.R=0;a.Oa=0;a.I=a.P=a.da=a.a=0;Ab(a);Db(a,1)} break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Fb(d,d.O<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",a=!0}return a};function Gb(a,b){var c=1;b&&1<a.O&&a.R&&(c=a.R/a.Ea);a.Pa=Math.round(1E3/Hb);a.ya=Math.floor(a.na/Hb*c);b||(a.ma=a.ya);a.Ga=0}function Ib(a){return a.I+a.P+a.da-a.a}function Bb(a){a.R=0;a.Qa=0;a.I=a.P=a.da=a.a=0;Cb(a);Fb(a,1)}
function Db(a,b,c){if(void 0!==b){.8>a.R/a.X&&(b=1);a.O=b;b=a.Da*a.O;if(a.X!=b){a.X=b;b=a.X.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.aa("target speed: "+b)}c&&a.D&&Hb(a.D)}a.I+=a.P;a.P=0;a.L=da();a.V=0;Eb(a)}function Ib(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function Jb(a,b,c){0<=b&&b<a.H.length&&0>a.H[b][0]&&(c*=a.na*a.O/1E3,a.H[b][0]=c+Kb(a))}function Kb(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c} function Fb(a,b,c){if(void 0!==b){.8>a.R/a.X&&(b=1);a.O=b;b=a.Ea*a.O;if(a.X!=b){a.X=b;b=a.X.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.aa("target speed: "+b)}c&&a.D&&Jb(a.D)}a.I+=a.P;a.P=0;a.L=ea();a.V=0;Gb(a)}function Kb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function Lb(a,b,c){0<=b&&b<a.H.length&&0>a.H[b][0]&&(c*=a.na*a.O/1E3,a.H[b][0]=c+Mb(a))}function Mb(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c}
k.gb=function(a){if(la(this,!0)){if(!this.i.ka){Db(this);this.D&&this.D.start(this.L,Gb(this));this.i.ka=!0;this.i.Kb=!0;this.N&&this.N.start();var b=this.w.run;b&&(b.textContent="Halt");this.D&&(Lb(this.D,!0),a&&Hb(this.D,!0))}this.Fa>=this.na&&Eb(this,!0);this.oa=0;this.va=da();this.V&&(a=this.va-this.V,a>this.Na&&(this.L+=a,this.L>this.va&&(this.L=this.va)));try{do{for(var c,d=this.i.Za?1:this.ya,e=this.H.length-1;0<=e;e--){var f=this.H[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.qb(c);c=Kb(this,!0); k.jb=function(a){if(ma(this,!0)){if(!this.i.ka){Fb(this);this.D&&this.D.start(this.L,Ib(this));this.i.ka=!0;this.i.fc=!0;this.N&&this.N.start();var b=this.w.run;b&&(b.textContent="Halt");this.D&&(Nb(this.D,!0),a&&Jb(this.D,!0))}this.Ga>=this.na&&Gb(this,!0);this.oa=0;this.va=ea();this.V&&(a=this.va-this.V,a>this.Pa&&(this.L+=a,this.L>this.va&&(this.L=this.va)));try{do{for(var c,d=this.i.bb?1:this.ya,e=this.H.length-1;0<=e;e--){var f=this.H[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.vb(c);c=Mb(this,!0);
this.oa+=c;this.P+=c;a=c;this.i.Za&&(b=!1,this.wa=this.wa+this.Eb()|0,this.ea-=a,0>=this.ea&&(this.ea+=this.ha,b=!0),0<=this.la&&this.la<=Gb(this)&&(this.ha=this.la=-1,Ab(this),Cb(this),b=!0),b&&this.aa(Gb(this)+" cycles: checksum="+B(this.wa)));a=c;for(var g=this.H.length-1;0<=g;g--){var h=this.H[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ma-=c;if(0>=this.ma){this.ma+=this.ya;++this.Oa>=Mb&&(this.D&&Lb(this.D),this.Oa=0);break}}while(this.i.ka)}catch(l){Cb(this);Bb(this);this.D&&this.D.stop(da(), this.oa+=c;this.P+=c;a=c;this.i.bb&&(b=!1,this.wa=this.wa+this.$b()|0,this.ea-=a,0>=this.ea&&(this.ea+=this.ha,b=!0),0<=this.la&&this.la<=Ib(this)&&(this.ha=this.la=-1,Cb(this),Eb(this),b=!0),b&&this.aa(Ib(this)+" cycles: checksum="+A(this.wa)));a=c;for(var g=this.H.length-1;0<=g;g--){var h=this.H[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ma-=c;if(0>=this.ma){this.ma+=this.ya;++this.Qa>=Ob&&(this.D&&Nb(this.D),this.Qa=0);break}}while(this.i.ka)}catch(m){Eb(this);Db(this);this.D&&this.D.stop(ea(),
Gb(this));la(this,!1);c=l.stack||l.message;this.i.error=!0;this.G(c);return}c=setTimeout;d=this.jb;this.V=da();e=this.Na;this.oa&&(e=Math.round(e*this.oa/this.ya));e-=this.V-this.va;if(f=this.V-this.L)this.R=Math.round(this.P/(10*f))/100,864E5<=f&&(this.I=0,Db(this));if(0>e||this.R<this.X)-1E3>e&&(this.L-=e),e=0;this.Fa+=this.oa;this.V+=e;c(d,e)}else Bb(this),this.D&&this.D.stop(da(),Gb(this))};k.qb=function(){return 0}; Ib(this));ma(this,!1);c=m.stack||m.message;this.i.error=!0;this.G(c);return}c=setTimeout;d=this.mb;this.V=ea();e=this.Pa;this.oa&&(e=Math.round(e*this.oa/this.ya));e-=this.V-this.va;if(f=this.V-this.L)this.R=Math.round(this.P/(10*f))/100,864E5<=f&&(this.I=0,Fb(this));if(0>e||this.R<this.X)-1E3>e&&(this.L-=e),e=0;this.Ga+=this.oa;this.V+=e;c(d,e)}else Db(this),this.D&&this.D.stop(ea(),Ib(this))};k.vb=function(){return 0};
function Cb(a){a.i.Ya&&(a.i.kb=!0);Kb(a);a.I+=a.P;a.P=0;if(a.i.ka){a.i.ka=!1;a.N&&a.N.stop();var b=a.w.run;b&&(b.textContent="Run")}a.i.complete=void 0}function Bb(a){if(a.D){for(var b=a.D,c=0;c<b.g.length;c++)Nb(b.g[c],void 0);Lb(a.D,void 0)}}var Fb=30,Mb=15,xb=["power","reset"];function Ob(a){wb.call(this,a,1E6);this.Ka=Pb;zb(this);this.i.complete=this.i.Sc=!1;this.Ma=0;this.ra=[];this.La=0;Qb(this)}m(Ob,wb);function Rb(a,b){a.ra.push(b)}k=Ob.prototype; function Eb(a){a.i.ab&&(a.i.nb=!0);Mb(a);a.I+=a.P;a.P=0;if(a.i.ka){a.i.ka=!1;a.N&&a.N.stop();var b=a.w.run;b&&(b.textContent="Run")}a.i.complete=void 0}function Db(a){if(a.D){for(var b=a.D,c=0;c<b.g.length;c++)Pb(b.g[c],void 0);Nb(a.D,void 0)}}var Hb=30,Ob=15,zb=["power","reset"];function Qb(a){yb.call(this,a,1E6);this.Ma=Rb;Bb(this);this.i.complete=this.i.Vc=!1;this.Oa=0;this.ra=[];this.Na=0;Sb(this)}l(Qb,yb);function Tb(a,b){a.ra.push(b)}k=Qb.prototype;
k.reset=function(){this.i.ka&&Cb(this);Qb(this);zb(this);this.i.error=!1;wb.prototype.reset.call(this)};function Qb(a){a.b=0;a.g=0;a.c=0;a.h=0;a.f=0;a.j=0;a.l=0;a.A=0;F(a,a.La);Sb(a,0);a.C=0}function Tb(a,b){a.La=b;F(a,b)}k.Eb=function(){var a=this.b+this.g+this.c+this.h+this.f+this.j+this.l|0;return a=a+this.A+this.s+Ub(this)|0}; k.reset=function(){this.i.ka&&Eb(this);Sb(this);Bb(this);this.i.error=!1;yb.prototype.reset.call(this)};function Sb(a){a.b=0;a.g=0;a.c=0;a.h=0;a.f=0;a.j=0;a.l=0;a.A=0;D(a,a.Na);Ub(a,0);a.C=0}function Vb(a,b){a.Na=b;D(a,b)}k.$b=function(){var a=this.b+this.g+this.c+this.h+this.f+this.j+this.l|0;return a=a+this.A+this.s+Wb(this)|0};
k.save=function(){var a=new G(this);a.set(0,[this.b,this.g,this.c,this.h,this.f,this.j,this.l,this.A,this.s,Ub(this)]);a.set(1,[this.C,this.I,this.O]);a.set(2,eb(this.u));return a.data()}; k.save=function(){var a=new E(this);a.set(0,[this.b,this.g,this.c,this.h,this.f,this.j,this.l,this.A,this.s,Wb(this)]);a.set(1,[this.C,this.I,this.O]);a.set(2,gb(this.u));return a.data()};
k.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.c=b[2];this.h=b[3];this.f=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;F(this,b[8]);Sb(this,b[9]);b=a[1];this.C=b[0];this.I=b[1];Db(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.A){for(var f=0,g=Array(b.A),h=0;h<e.length-1;)for(var l=e[h++],n=e[h++];l--;)g[f++]=n;e=g}f=b.a[d];if(!f||!f.restore(e)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; k.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.c=b[2];this.h=b[3];this.f=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);Ub(this,b[9]);b=a[1];this.C=b[0];this.I=b[1];Fb(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.A){for(var f=0,g=Array(b.A),h=0;h<e.length-1;)for(var m=e[h++],q=e[h++];m--;)g[f++]=q;e=g}f=b.a[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.S=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.w[b]=c;this.Ma++;a=!0;break;default:a=wb.prototype.S.call(this,a,b,c)}return a};function Vb(a){return a.g<<8|a.c}function Wb(a,b){a.g=b>>8&255;a.c=b&255}function Yb(a){return a.h<<8|a.f}function Zb(a,b){a.h=b>>8&255;a.f=b&255}function H(a){return a.j<<8|a.l} k.S=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.w[b]=c;this.Oa++;a=!0;break;default:a=yb.prototype.S.call(this,a,b,c)}return a};function Xb(a){return a.g<<8|a.c}function Zb(a,b){a.g=b>>8&255;a.c=b&255}function $b(a){return a.h<<8|a.f}function ac(a,b){a.h=b>>8&255;a.f=b&255}function G(a){return a.j<<8|a.l}
function I(a,b){a.j=b>>8&255;a.l=b&255}function F(a,b){a.s=b&65535}function J(a){return a.o&256?1:0}function $b(a,b){a.o=a.o&255|b}function ac(a){return Qa[a.v&255]?4:0}function Ub(a){return a.F&-214|(a.v&128?128:0)|(a.o&255?0:64)|((a.v^a.B)&16?16:0)|ac(a)|J(a)}function Sb(a,b){a.o=a.v=a.B=0;b&1&&(a.o|=256);b&4||(a.v|=1);b&16&&(a.B|=16);b&64||(a.o|=255);b&128&&(a.v^=192);a.F=a.F&-726|b&512|2}function bc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b)&255} function H(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.s=b&65535}function I(a){return a.o&256?1:0}function bc(a,b){a.o=a.o&255|b}function cc(a){return Ra[a.v&255]?4:0}function Wb(a){return a.F&-214|(a.v&128?128:0)|(a.o&255?0:64)|((a.v^a.B)&16?16:0)|cc(a)|I(a)}function Ub(a,b){a.o=a.v=a.B=0;b&1&&(a.o|=256);b&4||(a.v|=1);b&16&&(a.B|=16);b&64||(a.o|=255);b&128&&(a.v^=192);a.F=a.F&-726|b&512|2}function dc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b)&255}
function cc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?1:0))&255}function dc(a,b){a.o=a.v=a.B=a.b&b;(a.b|b)&8&&(a.B^=16);return a.o}function ec(a,b){a.B=b^255;b=a.v=b+255&255;a.o=a.o&-256|b;return b}function fc(a,b){a.B=b;b=a.v=b+1&255;a.o=a.o&-256|b;return b}function gc(a,b){return a.v=a.o=a.B=a.b|b}function L(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+1^256)&255}function hc(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?0:1)^256)&255}function ic(a,b){return a.v=a.o=a.B=a.b^b} function ec(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?1:0))&255}function fc(a,b){a.o=a.v=a.B=a.b&b;(a.b|b)&8&&(a.B^=16);return a.o}function gc(a,b){a.B=b^255;b=a.v=b+255&255;a.o=a.o&-256|b;return b}function hc(a,b){a.B=b;b=a.v=b+1&255;a.o=a.o&-256|b;return b}function ic(a,b){return a.v=a.o=a.B=a.b|b}function J(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+1^256)&255}function jc(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?0:1)^256)&255}function kc(a,b){return a.v=a.o=a.B=a.b^b}
function M(a,b){a=a.u;return a.a[(b&a.g)>>>a.b].Sa(b&a.f,b)}function N(a,b,c){a=a.u;a.a[(b&a.g)>>>a.b].Ta(b&a.f,c&255,b)}function O(a){var b=M(a,a.s);F(a,a.s+1);return b}function P(a){var b=bb(a.u,a.s);F(a,a.s+2);return b}function Q(a){var b=bb(a.u,a.A);a.A=a.A+2&65535;return b}function R(a,b){a.A=a.A-2&65535;db(a.u,a.A,b)}function jc(a){if(a.a&&a.C&255&&a.F&512){for(var b=0;8>b&&!(a.C&1<<b);b++);a.C&=~(0>b?255:1<<b);a.F&=-513;a.C&=-257;a.Ka[199|b<<3].call(a)}return a.C&256?(Kb(a),!1):!0} function K(a,b){a=a.u;return a.a[(b&a.g)>>>a.b].Ua(b&a.f,b)}function M(a,b,c){a=a.u;a.a[(b&a.g)>>>a.b].Va(b&a.f,c&255,b)}function N(a){var b=K(a,a.s);D(a,a.s+1);return b}function O(a){var b=db(a.u,a.s);D(a,a.s+2);return b}function P(a){var b=db(a.u,a.A);a.A=a.A+2&65535;return b}function Q(a,b){a.A=a.A-2&65535;fb(a.u,a.A,b)}function lc(a){if(a.a&&a.C&255&&a.F&512){for(var b=0;8>b&&!(a.C&1<<b);b++);a.C&=~(0>b?255:1<<b);a.F&=-513;a.C&=-257;a.Ma[199|b<<3].call(a)}return a.C&256?(Mb(a),!1):!0}
function kc(a,b){a.C|=1<<b;a.F&512&&Kb(a)}function S(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.i.error=!0,a.G("Value for "+b+" is invalid"),Cb(a)),c=!a.i.ka||a.i.Bb?B(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}k.qb=function(a){this.i.complete=!0;this.i.Sc=!1;this.i.Kb=!1;this.da=this.a=a;if(jc(this)){do this.Ka[O(this)].call(this);while(0<this.a)}return this.i.complete?this.da-this.a:void 0===this.i.complete?0:-1}; function mc(a,b){a.C|=1<<b;a.F&512&&Mb(a)}function R(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.i.error=!0,a.G("Value for "+b+" is invalid"),Eb(a)),c=!a.i.ka||a.i.Xb?A(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}k.vb=function(a){this.i.complete=!0;this.i.Vc=!1;this.i.fc=!1;this.da=this.a=a;if(lc(this)){do this.Ma[N(this)].call(this);while(0<this.a)}return this.i.complete?this.da-this.a:void 0===this.i.complete?0:-1};
Ha(function(){for(var a=y(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ob(d);ja(d,c)}});function lc(){this.a-=4}function mc(){F(this,P(this));this.a-=10}function nc(){F(this,Q(this));this.a-=10}function oc(){var a=P(this);R(this,this.s);F(this,a);this.a-=17} Ia(function(){for(var a=x(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Qb(d);ka(d,c)}});function nc(){this.a-=4}function oc(){D(this,O(this));this.a-=10}function pc(){D(this,P(this));this.a-=10}function qc(){var a=O(this);Q(this,this.s);D(this,a);this.a-=17}
var Pb=[lc,function(){Wb(this,P(this));this.a-=10},function(){N(this,Vb(this),this.b);this.a-=7},function(){Wb(this,Vb(this)+1);this.a-=5},function(){this.g=fc(this,this.g);this.a-=5},function(){this.g=ec(this,this.g);this.a-=5},function(){this.g=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;$b(this,a&256);this.a-=4},lc,function(){var a;I(this,a=H(this)+Vb(this));$b(this,a>>8&256);this.a-=10},function(){this.b=M(this,Vb(this));this.a-=7},function(){Wb(this,Vb(this)-1);this.a-=5}, var Rb=[nc,function(){Zb(this,O(this));this.a-=10},function(){M(this,Xb(this),this.b);this.a-=7},function(){Zb(this,Xb(this)+1);this.a-=5},function(){this.g=hc(this,this.g);this.a-=5},function(){this.g=gc(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;bc(this,a&256);this.a-=4},nc,function(){var a;H(this,a=G(this)+Xb(this));bc(this,a>>8&256);this.a-=10},function(){this.b=K(this,Xb(this));this.a-=7},function(){Zb(this,Xb(this)-1);this.a-=5},
function(){this.c=fc(this,this.c);this.a-=5},function(){this.c=ec(this,this.c);this.a-=5},function(){this.c=O(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;$b(this,a);this.a-=4},lc,function(){Zb(this,P(this));this.a-=10},function(){N(this,Yb(this),this.b);this.a-=7},function(){Zb(this,Yb(this)+1);this.a-=5},function(){this.h=fc(this,this.h);this.a-=5},function(){this.h=ec(this,this.h);this.a-=5},function(){this.h=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|J(this); function(){this.c=hc(this,this.c);this.a-=5},function(){this.c=gc(this,this.c);this.a-=5},function(){this.c=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;bc(this,a);this.a-=4},nc,function(){ac(this,O(this));this.a-=10},function(){M(this,$b(this),this.b);this.a-=7},function(){ac(this,$b(this)+1);this.a-=5},function(){this.h=hc(this,this.h);this.a-=5},function(){this.h=gc(this,this.h);this.a-=5},function(){this.h=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|I(this);
$b(this,a&256);this.a-=4},lc,function(){var a;I(this,a=H(this)+Yb(this));$b(this,a>>8&256);this.a-=10},function(){this.b=M(this,Yb(this));this.a-=7},function(){Zb(this,Yb(this)-1);this.a-=5},function(){this.f=fc(this,this.f);this.a-=5},function(){this.f=ec(this,this.f);this.a-=5},function(){this.f=O(this);this.a-=7},function(){var a=this.b<<8;this.b=(J(this)<<8|this.b)>>1;$b(this,a&256);this.a-=4},lc,function(){I(this,P(this));this.a-=10},function(){var a=P(this);db(this.u,a,H(this));this.a-=16}, bc(this,a&256);this.a-=4},nc,function(){var a;H(this,a=G(this)+$b(this));bc(this,a>>8&256);this.a-=10},function(){this.b=K(this,$b(this));this.a-=7},function(){ac(this,$b(this)-1);this.a-=5},function(){this.f=hc(this,this.f);this.a-=5},function(){this.f=gc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(I(this)<<8|this.b)>>1;bc(this,a&256);this.a-=4},nc,function(){H(this,O(this));this.a-=10},function(){var a=O(this);fb(this.u,a,G(this));this.a-=16},
function(){I(this,H(this)+1);this.a-=5},function(){this.j=fc(this,this.j);this.a-=5},function(){this.j=ec(this,this.j);this.a-=5},function(){this.j=O(this);this.a-=7},function(){var a=0,b=J(this);if((this.v^this.B)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=bc(this,a);$b(this,b?256:0);this.a-=4},lc,function(){var a;I(this,a=H(this)+H(this));$b(this,a>>8&256);this.a-=10},function(){var a;a=P(this);a=bb(this.u,a);I(this,a);this.a-=16},function(){I(this,H(this)-1);this.a-=5},function(){this.l= function(){H(this,G(this)+1);this.a-=5},function(){this.j=hc(this,this.j);this.a-=5},function(){this.j=gc(this,this.j);this.a-=5},function(){this.j=N(this);this.a-=7},function(){var a=0,b=I(this);if((this.v^this.B)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=dc(this,a);bc(this,b?256:0);this.a-=4},nc,function(){var a;H(this,a=G(this)+G(this));bc(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=db(this.u,a);H(this,a);this.a-=16},function(){H(this,G(this)-1);this.a-=5},function(){this.l=
fc(this,this.l);this.a-=5},function(){this.l=ec(this,this.l);this.a-=5},function(){this.l=O(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},lc,function(){this.A=P(this)&65535;this.a-=10},function(){N(this,P(this),this.b);this.a-=13},function(){this.A=this.A+1&65535;this.a-=5},function(){var a=H(this);N(this,a,fc(this,M(this,a)));this.a-=10},function(){var a=H(this);N(this,a,ec(this,M(this,a)));this.a-=10},function(){N(this,H(this),O(this));this.a-=10},function(){this.o|=256;this.a-=4},lc, hc(this,this.l);this.a-=5},function(){this.l=gc(this,this.l);this.a-=5},function(){this.l=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},nc,function(){this.A=O(this)&65535;this.a-=10},function(){M(this,O(this),this.b);this.a-=13},function(){this.A=this.A+1&65535;this.a-=5},function(){var a=G(this);M(this,a,hc(this,K(this,a)));this.a-=10},function(){var a=G(this);M(this,a,gc(this,K(this,a)));this.a-=10},function(){M(this,G(this),N(this));this.a-=10},function(){this.o|=256;this.a-=4},nc,
function(){var a;I(this,a=H(this)+this.A);$b(this,a>>8&256);this.a-=10},function(){this.b=M(this,P(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=fc(this,this.b);this.a-=5},function(){this.b=ec(this,this.b);this.a-=5},function(){this.b=O(this);this.a-=7},function(){$b(this,J(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.h;this.a-=5},function(){this.g=this.f;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g= function(){var a;H(this,a=G(this)+this.A);bc(this,a>>8&256);this.a-=10},function(){this.b=K(this,O(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=hc(this,this.b);this.a-=5},function(){this.b=gc(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){bc(this,I(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.h;this.a-=5},function(){this.g=this.f;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g=
this.l;this.a-=5},function(){this.g=M(this,H(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.a-=5},function(){this.c=this.h;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.j;this.a-=5},function(){this.c=this.l;this.a-=5},function(){this.c=M(this,H(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.h=this.g;this.a-=5},function(){this.h=this.c;this.a-=5},function(){this.a-=5},function(){this.h=this.f; this.l;this.a-=5},function(){this.g=K(this,G(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.a-=5},function(){this.c=this.h;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.j;this.a-=5},function(){this.c=this.l;this.a-=5},function(){this.c=K(this,G(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.h=this.g;this.a-=5},function(){this.h=this.c;this.a-=5},function(){this.a-=5},function(){this.h=this.f;
this.a-=5},function(){this.h=this.j;this.a-=5},function(){this.h=this.l;this.a-=5},function(){this.h=M(this,H(this));this.a-=7},function(){this.h=this.b;this.a-=5},function(){this.f=this.g;this.a-=5},function(){this.f=this.c;this.a-=5},function(){this.f=this.h;this.a-=5},function(){this.a-=5},function(){this.f=this.j;this.a-=5},function(){this.f=this.l;this.a-=5},function(){this.f=M(this,H(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.j=this.g;this.a-=5},function(){this.j= this.a-=5},function(){this.h=this.j;this.a-=5},function(){this.h=this.l;this.a-=5},function(){this.h=K(this,G(this));this.a-=7},function(){this.h=this.b;this.a-=5},function(){this.f=this.g;this.a-=5},function(){this.f=this.c;this.a-=5},function(){this.f=this.h;this.a-=5},function(){this.a-=5},function(){this.f=this.j;this.a-=5},function(){this.f=this.l;this.a-=5},function(){this.f=K(this,G(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.j=this.g;this.a-=5},function(){this.j=
this.c;this.a-=5},function(){this.j=this.h;this.a-=5},function(){this.j=this.f;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=M(this,H(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.l=this.g;this.a-=5},function(){this.l=this.c;this.a-=5},function(){this.l=this.h;this.a-=5},function(){this.l=this.f;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},function(){this.l=M(this,H(this));this.a-=7},function(){this.l=this.b; this.c;this.a-=5},function(){this.j=this.h;this.a-=5},function(){this.j=this.f;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=K(this,G(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.l=this.g;this.a-=5},function(){this.l=this.c;this.a-=5},function(){this.l=this.h;this.a-=5},function(){this.l=this.f;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},function(){this.l=K(this,G(this));this.a-=7},function(){this.l=this.b;
this.a-=5},function(){N(this,H(this),this.g);this.a-=7},function(){N(this,H(this),this.c);this.a-=7},function(){N(this,H(this),this.h);this.a-=7},function(){N(this,H(this),this.f);this.a-=7},function(){N(this,H(this),this.j);this.a-=7},function(){N(this,H(this),this.l);this.a-=7},function(){var a=this.s-1;if(this.ra.length)for(var b=0;b<this.ra.length;b++)if(this.ra[b](a))return;this.a-=7;this.C|=256;Kb(this);this.F&512||Cb(this)},function(){N(this,H(this),this.b);this.a-=7},function(){this.b=this.g; this.a-=5},function(){M(this,G(this),this.g);this.a-=7},function(){M(this,G(this),this.c);this.a-=7},function(){M(this,G(this),this.h);this.a-=7},function(){M(this,G(this),this.f);this.a-=7},function(){M(this,G(this),this.j);this.a-=7},function(){M(this,G(this),this.l);this.a-=7},function(){var a=this.s-1;if(this.ra.length)for(var b=0;b<this.ra.length;b++)if(this.ra[b](a))return;this.a-=7;this.C|=256;Mb(this);this.F&512||Eb(this)},function(){M(this,G(this),this.b);this.a-=7},function(){this.b=this.g;
this.a-=5},function(){this.b=this.c;this.a-=5},function(){this.b=this.h;this.a-=5},function(){this.b=this.f;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=M(this,H(this));this.a-=7},function(){this.a-=5},function(){this.b=bc(this,this.g);this.a-=4},function(){this.b=bc(this,this.c);this.a-=4},function(){this.b=bc(this,this.h);this.a-=4},function(){this.b=bc(this,this.f);this.a-=4},function(){this.b=bc(this,this.j);this.a-=4},function(){this.b= this.a-=5},function(){this.b=this.c;this.a-=5},function(){this.b=this.h;this.a-=5},function(){this.b=this.f;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=K(this,G(this));this.a-=7},function(){this.a-=5},function(){this.b=dc(this,this.g);this.a-=4},function(){this.b=dc(this,this.c);this.a-=4},function(){this.b=dc(this,this.h);this.a-=4},function(){this.b=dc(this,this.f);this.a-=4},function(){this.b=dc(this,this.j);this.a-=4},function(){this.b=
bc(this,this.l);this.a-=4},function(){this.b=bc(this,M(this,H(this)));this.a-=7},function(){this.b=bc(this,this.b);this.a-=4},function(){this.b=cc(this,this.g);this.a-=4},function(){this.b=cc(this,this.c);this.a-=4},function(){this.b=cc(this,this.h);this.a-=4},function(){this.b=cc(this,this.f);this.a-=4},function(){this.b=cc(this,this.j);this.a-=4},function(){this.b=cc(this,this.l);this.a-=4},function(){this.b=cc(this,M(this,H(this)));this.a-=7},function(){this.b=cc(this,this.b);this.a-=4},function(){this.b= dc(this,this.l);this.a-=4},function(){this.b=dc(this,K(this,G(this)));this.a-=7},function(){this.b=dc(this,this.b);this.a-=4},function(){this.b=ec(this,this.g);this.a-=4},function(){this.b=ec(this,this.c);this.a-=4},function(){this.b=ec(this,this.h);this.a-=4},function(){this.b=ec(this,this.f);this.a-=4},function(){this.b=ec(this,this.j);this.a-=4},function(){this.b=ec(this,this.l);this.a-=4},function(){this.b=ec(this,K(this,G(this)));this.a-=7},function(){this.b=ec(this,this.b);this.a-=4},function(){this.b=
L(this,this.g);this.a-=4},function(){this.b=L(this,this.c);this.a-=4},function(){this.b=L(this,this.h);this.a-=4},function(){this.b=L(this,this.f);this.a-=4},function(){this.b=L(this,this.j);this.a-=4},function(){this.b=L(this,this.l);this.a-=4},function(){this.b=L(this,M(this,H(this)));this.a-=7},function(){this.b=L(this,this.b);this.a-=4},function(){this.b=hc(this,this.g);this.a-=4},function(){this.b=hc(this,this.c);this.a-=4},function(){this.b=hc(this,this.h);this.a-=4},function(){this.b=hc(this, J(this,this.g);this.a-=4},function(){this.b=J(this,this.c);this.a-=4},function(){this.b=J(this,this.h);this.a-=4},function(){this.b=J(this,this.f);this.a-=4},function(){this.b=J(this,this.j);this.a-=4},function(){this.b=J(this,this.l);this.a-=4},function(){this.b=J(this,K(this,G(this)));this.a-=7},function(){this.b=J(this,this.b);this.a-=4},function(){this.b=jc(this,this.g);this.a-=4},function(){this.b=jc(this,this.c);this.a-=4},function(){this.b=jc(this,this.h);this.a-=4},function(){this.b=jc(this,
this.f);this.a-=4},function(){this.b=hc(this,this.j);this.a-=4},function(){this.b=hc(this,this.l);this.a-=4},function(){this.b=hc(this,M(this,H(this)));this.a-=7},function(){this.b=hc(this,this.b);this.a-=4},function(){this.b=dc(this,this.g);this.a-=4},function(){this.b=dc(this,this.c);this.a-=4},function(){this.b=dc(this,this.h);this.a-=4},function(){this.b=dc(this,this.f);this.a-=4},function(){this.b=dc(this,this.j);this.a-=4},function(){this.b=dc(this,this.l);this.a-=4},function(){this.b=dc(this, this.f);this.a-=4},function(){this.b=jc(this,this.j);this.a-=4},function(){this.b=jc(this,this.l);this.a-=4},function(){this.b=jc(this,K(this,G(this)));this.a-=7},function(){this.b=jc(this,this.b);this.a-=4},function(){this.b=fc(this,this.g);this.a-=4},function(){this.b=fc(this,this.c);this.a-=4},function(){this.b=fc(this,this.h);this.a-=4},function(){this.b=fc(this,this.f);this.a-=4},function(){this.b=fc(this,this.j);this.a-=4},function(){this.b=fc(this,this.l);this.a-=4},function(){this.b=fc(this,
M(this,H(this)));this.a-=7},function(){this.b=dc(this,this.b);this.a-=4},function(){this.b=ic(this,this.g);this.a-=4},function(){this.b=ic(this,this.c);this.a-=4},function(){this.b=ic(this,this.h);this.a-=4},function(){this.b=ic(this,this.f);this.a-=4},function(){this.b=ic(this,this.j);this.a-=4},function(){this.b=ic(this,this.l);this.a-=4},function(){this.b=ic(this,M(this,H(this)));this.a-=7},function(){this.b=ic(this,this.b);this.a-=4},function(){this.b=gc(this,this.g);this.a-=4},function(){this.b= K(this,G(this)));this.a-=7},function(){this.b=fc(this,this.b);this.a-=4},function(){this.b=kc(this,this.g);this.a-=4},function(){this.b=kc(this,this.c);this.a-=4},function(){this.b=kc(this,this.h);this.a-=4},function(){this.b=kc(this,this.f);this.a-=4},function(){this.b=kc(this,this.j);this.a-=4},function(){this.b=kc(this,this.l);this.a-=4},function(){this.b=kc(this,K(this,G(this)));this.a-=7},function(){this.b=kc(this,this.b);this.a-=4},function(){this.b=ic(this,this.g);this.a-=4},function(){this.b=
gc(this,this.c);this.a-=4},function(){this.b=gc(this,this.h);this.a-=4},function(){this.b=gc(this,this.f);this.a-=4},function(){this.b=gc(this,this.j);this.a-=4},function(){this.b=gc(this,this.l);this.a-=4},function(){this.b=gc(this,M(this,H(this)));this.a-=7},function(){this.b=gc(this,this.b);this.a-=4},function(){L(this,this.g);this.a-=4},function(){L(this,this.c);this.a-=4},function(){L(this,this.h);this.a-=4},function(){L(this,this.f);this.a-=4},function(){L(this,this.j);this.a-=4},function(){L(this, ic(this,this.c);this.a-=4},function(){this.b=ic(this,this.h);this.a-=4},function(){this.b=ic(this,this.f);this.a-=4},function(){this.b=ic(this,this.j);this.a-=4},function(){this.b=ic(this,this.l);this.a-=4},function(){this.b=ic(this,K(this,G(this)));this.a-=7},function(){this.b=ic(this,this.b);this.a-=4},function(){J(this,this.g);this.a-=4},function(){J(this,this.c);this.a-=4},function(){J(this,this.h);this.a-=4},function(){J(this,this.f);this.a-=4},function(){J(this,this.j);this.a-=4},function(){J(this,
this.l);this.a-=4},function(){L(this,M(this,H(this)));this.a-=7},function(){L(this,this.b);this.a-=4},function(){this.o&255&&(F(this,Q(this)),this.a-=6);this.a-=5},function(){Wb(this,Q(this));this.a-=10},function(){var a=P(this);this.o&255&&F(this,a);this.a-=10},mc,function(){var a=P(this);this.o&255&&(R(this,this.s),F(this,a),this.a-=6);this.a-=11},function(){R(this,Vb(this));this.a-=11},function(){this.b=bc(this,O(this));this.a-=7},function(){R(this,this.s);F(this,0);this.a-=11},function(){this.o& this.l);this.a-=4},function(){J(this,K(this,G(this)));this.a-=7},function(){J(this,this.b);this.a-=4},function(){this.o&255&&(D(this,P(this)),this.a-=6);this.a-=5},function(){Zb(this,P(this));this.a-=10},function(){var a=O(this);this.o&255&&D(this,a);this.a-=10},oc,function(){var a=O(this);this.o&255&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,Xb(this));this.a-=11},function(){this.b=dc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,0);this.a-=11},function(){this.o&
255||(F(this,Q(this)),this.a-=6);this.a-=5},nc,function(){var a=P(this);this.o&255||F(this,a);this.a-=10},mc,function(){var a=P(this);this.o&255||(R(this,this.s),F(this,a),this.a-=6);this.a-=11},oc,function(){this.b=cc(this,O(this));this.a-=7},function(){R(this,this.s);F(this,8);this.a-=11},function(){J(this)||(F(this,Q(this)),this.a-=6);this.a-=5},function(){Zb(this,Q(this));this.a-=10},function(){var a=P(this);J(this)||F(this,a);this.a-=10},function(){for(var a=O(this),b=this.u,c=this.b,d=this.s+ 255||(D(this,P(this)),this.a-=6);this.a-=5},pc,function(){var a=O(this);this.o&255||D(this,a);this.a-=10},oc,function(){var a=O(this);this.o&255||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},qc,function(){this.b=ec(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,8);this.a-=11},function(){I(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){ac(this,P(this));this.a-=10},function(){var a=O(this);I(this)||D(this,a);this.a-=10},function(){for(var a=N(this),b=this.u,c=this.b,d=this.s+
-2&65535,e=1,f=0;0<e;){var g=b.l[a],h=b.C[a]||1,l=1==h?255:2==h?65535:-1,l=(c>>>=f)&l;if(void 0!==g&&g[0])g[0](a,l,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=P(this);J(this)||(R(this,this.s),F(this,a),this.a-=6);this.a-=11},function(){R(this,Yb(this));this.a-=11},function(){this.b=L(this,O(this));this.a-=7},function(){R(this,this.s);F(this,16);this.a-=11},function(){J(this)&&(F(this,Q(this)),this.a-=6);this.a-=5},nc,function(){var a=P(this);J(this)&&F(this,a);this.a-=10},function(){for(var a= -2&65535,e=1,f=0;0<e;){var g=b.l[a],h=b.C[a]||1,m=1==h?255:2==h?65535:-1,m=(c>>>=f)&m;if(void 0!==g&&g[0])g[0](a,m,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=O(this);I(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,$b(this));this.a-=11},function(){this.b=J(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,16);this.a-=11},function(){I(this)&&(D(this,P(this)),this.a-=6);this.a-=5},pc,function(){var a=O(this);I(this)&&D(this,a);this.a-=10},function(){for(var a=
O(this),b=this.u,c=this.s+-2&65535,d=1,e=0,f=0;0<d;){var g=b.j[a],h=b.B[a]||1,l=1==h?255:2==h?65535:-1,n=l;void 0!==g&&g[0]&&(n=g[0](a,c),void 0===n?n=l:n&=l);e|=n<<f;f+=h<<3;a+=h;d-=h}this.b=e&255;this.a-=10},function(){var a=P(this);J(this)&&(R(this,this.s),F(this,a),this.a-=6);this.a-=11},oc,function(){this.b=hc(this,O(this));this.a-=7},function(){R(this,this.s);F(this,24);this.a-=11},function(){ac(this)||(F(this,Q(this)),this.a-=6);this.a-=5},function(){I(this,Q(this));this.a-=10},function(){var a= N(this),b=this.u,c=this.s+-2&65535,d=1,e=0,f=0;0<d;){var g=b.j[a],h=b.B[a]||1,m=1==h?255:2==h?65535:-1,q=m;void 0!==g&&g[0]&&(q=g[0](a,c),void 0===q?q=m:q&=m);e|=q<<f;f+=h<<3;a+=h;d-=h}this.b=e&255;this.a-=10},function(){var a=O(this);I(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},qc,function(){this.b=jc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,24);this.a-=11},function(){cc(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){H(this,P(this));this.a-=10},function(){var a=
P(this);ac(this)||F(this,a);this.a-=10},function(){var a=Q(this);R(this,H(this));I(this,a);this.a-=18},function(){var a=P(this);ac(this)||(R(this,this.s),F(this,a),this.a-=6);this.a-=11},function(){R(this,H(this));this.a-=11},function(){this.b=dc(this,O(this));this.a-=7},function(){R(this,this.s);F(this,32);this.a-=11},function(){ac(this)&&(F(this,Q(this)),this.a-=6);this.a-=5},function(){F(this,H(this));this.a-=5},function(){var a=P(this);ac(this)&&F(this,a);this.a-=10},function(){var a=H(this); O(this);cc(this)||D(this,a);this.a-=10},function(){var a=P(this);Q(this,G(this));H(this,a);this.a-=18},function(){var a=O(this);cc(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,G(this));this.a-=11},function(){this.b=fc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,32);this.a-=11},function(){cc(this)&&(D(this,P(this)),this.a-=6);this.a-=5},function(){D(this,G(this));this.a-=5},function(){var a=O(this);cc(this)&&D(this,a);this.a-=10},function(){var a=G(this);
I(this,Yb(this));Zb(this,a);this.a-=5},function(){var a=P(this);ac(this)&&(R(this,this.s),F(this,a),this.a-=6);this.a-=11},oc,function(){this.b=ic(this,O(this));this.a-=7},function(){R(this,this.s);F(this,40);this.a-=11},function(){this.v&128||(F(this,Q(this)),this.a-=6);this.a-=5},function(){var a=Q(this);Sb(this,a&255|this.F&-256);this.b=a>>8;this.a-=10},function(){var a=P(this);this.v&128||F(this,a);this.a-=10},function(){this.F&=-513;this.a-=4},function(){var a=P(this);this.v&128||(R(this,this.s), H(this,$b(this));ac(this,a);this.a-=5},function(){var a=O(this);cc(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},qc,function(){this.b=kc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,40);this.a-=11},function(){this.v&128||(D(this,P(this)),this.a-=6);this.a-=5},function(){var a=P(this);Ub(this,a&255|this.F&-256);this.b=a>>8;this.a-=10},function(){var a=O(this);this.v&128||D(this,a);this.a-=10},function(){this.F&=-513;this.a-=4},function(){var a=O(this);this.v&128||(Q(this,this.s),
F(this,a),this.a-=6);this.a-=11},function(){R(this,Ub(this)&255|this.b<<8);this.a-=11},function(){this.b=gc(this,O(this));this.a-=7},function(){R(this,this.s);F(this,48);this.a-=11},function(){this.v&128&&(F(this,Q(this)),this.a-=6);this.a-=5},function(){this.A=H(this)&65535;this.a-=5},function(){var a=P(this);this.v&128&&F(this,a);this.a-=10},function(){this.F|=512;this.a-=4;jc(this)},function(){var a=P(this);this.v&128&&(R(this,this.s),F(this,a),this.a-=6);this.a-=11},oc,function(){L(this,O(this)); D(this,a),this.a-=6);this.a-=11},function(){Q(this,Wb(this)&255|this.b<<8);this.a-=11},function(){this.b=ic(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,48);this.a-=11},function(){this.v&128&&(D(this,P(this)),this.a-=6);this.a-=5},function(){this.A=G(this)&65535;this.a-=5},function(){var a=O(this);this.v&128&&D(this,a);this.a-=10},function(){this.F|=512;this.a-=4;lc(this)},function(){var a=O(this);this.v&128&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},qc,function(){J(this,N(this));
this.a-=7},function(){R(this,this.s);F(this,56);this.a-=11}];function U(a){q.call(this,"ChipSet",a);var b=a.model;b&&!pc[b]&&ea("Unrecognized ChipSet model: "+b);this.b=pc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);z(this)}m(U,q);k=U.prototype;k.S=function(){return!1}; this.a-=7},function(){Q(this,this.s);D(this,56);this.a-=11}];function S(a){p.call(this,"ChipSet",a);var b=a.model;b&&!rc[b]&&fa("Unrecognized ChipSet model: "+b);this.b=rc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);z(this)}l(S,p);k=S.prototype;k.S=function(){return!1};
k.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;this.D=a;this.h=C(a,"Keyboard");this.g=C(a,"SerialPort");this.video=C(a,"Video");fb(b,this,this.b.bb);gb(b,this,this.b.cb)};k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.b.INIT&&!this.restore(this.b.INIT)&&this.G("reset error")}; k.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;this.D=a;this.h=Ta(a,"Keyboard");this.g=Ta(a,"SerialPort");this.video=Ta(a,"Video");hb(b,this,this.b.fb);ib(b,this,this.b.gb)};k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.b.INIT&&!this.restore(this.b.INIT)&&this.G("reset error")};
k.save=function(){var a=new G(this);switch(this.b.Y){case V.Y:a.set(0,[this.V,this.f,this.X,this.B,this.H,this.P,this.R]);break;case W.Y:a.set(0,[this.N,this.s]),a.set(1,[this.l,this.o]),a.set(2,[this.c,this.C,this.O,this.L]),a.set(3,[this.A,this.a,this.v,this.F,this.j])}return a.data()}; k.save=function(){var a=new E(this);switch(this.b.Y){case T.Y:a.set(0,[this.V,this.f,this.X,this.B,this.H,this.P,this.R]);break;case V.Y:a.set(0,[this.N,this.s]),a.set(1,[this.l,this.o]),a.set(2,[this.c,this.C,this.O,this.L]),a.set(3,[this.A,this.a,this.v,this.F,this.j])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.Y){case V.Y:return this.V=b[0],this.f=b[1],this.X=b[2],this.B=b[3],this.H=b[4],this.P=b[5],this.R=b[6],!0;case W.Y:return this.N=b[0],this.s=b[1],b=a[1],this.l=b[0],this.o=b[1],b=a[2],this.c=b[0],this.C=b[1],this.O=b[2],this.L=b[3],b=a[3],this.A=b[0],this.a=b[1],this.v=b[2],this.F=b[3],this.j=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Xc=function(){return this.V};k.Yc=function(){return this.f};k.Zc=function(){return this.X}; k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.Y){case T.Y:return this.V=b[0],this.f=b[1],this.X=b[2],this.B=b[3],this.H=b[4],this.P=b[5],this.R=b[6],!0;case V.Y:return this.N=b[0],this.s=b[1],b=a[1],this.l=b[0],this.o=b[1],b=a[2],this.c=b[0],this.C=b[1],this.O=b[2],this.L=b[3],b=a[3],this.A=b[0],this.a=b[1],this.v=b[2],this.F=b[3],this.j=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.dd=function(){return this.V};k.ed=function(){return this.f};k.fd=function(){return this.X};
k.Wc=function(){return this.B>>8-this.H&255};k.ed=function(a,b){this.H=b};k.gd=function(a,b){this.P=b};k.fd=function(a,b){this.B=b<<8|this.B>>8};k.hd=function(a,b){this.R=b};k.jd=function(){};function qc(a){var b=0,c=0,d=~a.A;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} k.cd=function(){return this.B>>8-this.H&255};k.qd=function(a,b){this.H=b};k.sd=function(a,b){this.P=b};k.rd=function(a,b){this.B=b<<8|this.B>>8};k.td=function(a,b){this.R=b};k.ud=function(){};function sc(a){var b=0,c=0,d=~a.A;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
k.$c=function(){var a=this.s,a=a&~W.ga.wb;if((Gb(this.m)&64)<<1&&(a|=W.ga.wb,a!=this.s)){var b,c;b=this.v&1;switch(this.v>>1&7){case W.ia.Ca.Pb:this.A=this.A<<1|b;break;case W.ia.Ca.Wb:b=qc(this);this.j[b]=W.ia.Xa;break;case W.ia.Ca.Qb:this.a=this.a<<1|b;break;case W.ia.Ca.Lc:b=qc(this);c=this.a&W.ia.Xa;this.j[b]=c;break;case W.ia.Ca.Bc:b=qc(this);c=this.j[b];null==c&&(c=W.ia.Xa);this.a=c;break;case W.ia.Ca.Dc:this.a<<=1,this.F=this.a&W.ia.Xa+1}}a&=~W.ga.xb;this.F&&(a|=W.ga.xb);a&=~W.ga.sb;if(b=this.h){b= k.gd=function(){var a=this.s,a=a&~V.ga.Hb;if((Ib(this.m)&64)<<1&&(a|=V.ga.Hb,a!=this.s)){var b,c;b=this.v&1;switch(this.v>>1&7){case V.ia.Ca.kc:this.A=this.A<<1|b;break;case V.ia.Ca.pc:b=sc(this);this.j[b]=V.ia.Za;break;case V.ia.Ca.lc:this.a=this.a<<1|b;break;case V.ia.Ca.Pc:b=sc(this);c=this.a&V.ia.Za;this.j[b]=c;break;case V.ia.Ca.Kc:b=sc(this);c=this.j[b];null==c&&(c=V.ia.Za);this.a=c;break;case V.ia.Ca.Lc:this.a<<=1,this.F=this.a&V.ia.Za+1}}a&=~V.ga.Ib;this.F&&(a|=V.ga.Ib);a&=~V.ga.Cb;if(b=this.h){b=
this.h;if(c=b.h)c=b.m,c=Gb(b.m)>=b.o+c.na*c.O/1E3*1.2731488;c&&(b.h=!1);b=!b.h}b&&(a|=W.ga.sb);a&=~W.ga.zb;this.g&&this.g.T&rc&&(a|=W.ga.zb);return this.s=a};k.kd=function(a,b){this.N=b};k.nd=function(a,b){this.v=b};k.md=function(a,b){a=b&3;switch(b>>2&3){case 0:this.c=this.c&-4|a;break;case 1:this.c=this.c&-13|a<<2;this.video&&(b=this.video,a=this.c,b.la!==a&&((b.la=a)?Nb(b,!0):b.na=!0));break;case 2:switch(a){case 0:this.C=~this.C;break;case 2:case 3:this.O=3-a}break;case 3:this.L=a}}; this.h;if(c=b.h)c=b.m,c=Ib(b.m)>=b.o+c.na*c.O/1E3*1.2731488;c&&(b.h=!1);b=!b.h}b&&(a|=V.ga.Cb);a&=~V.ga.Qb;this.g&&this.g.T&tc&&(a|=V.ga.Qb);return this.s=a};k.vd=function(a,b){this.N=b};k.yd=function(a,b){this.v=b};k.xd=function(a,b){a=b&3;switch(b>>2&3){case 0:this.c=this.c&-4|a;break;case 1:this.c=this.c&-13|a<<2;this.video&&(b=this.video,a=this.c,b.la!==a&&((b.la=a)?Pb(b,!0):b.na=!0));break;case 2:switch(a){case 0:this.C=~this.C;break;case 2:case 3:this.O=3-a}break;case 3:this.L=a}};
k.ld=function(a,b){b&W.ua.Ac?(b&=W.ua.yb,this.o!=b&&(this.o=b,this.video&&(this.video.Gb=this.o==W.ua.yb?50:60))):(b&=W.ua.pb,this.l!=b&&(this.l=b,this.video&&(a=this.video,b=this.l==W.ua.pb?132:80,a.C=b,a.M=a.va,80<b&&a.M--,sc(a)&&tc(a))))}; k.wd=function(a,b){b&V.ua.Jc?(b&=V.ua.Mb,this.o!=b&&(this.o=b,this.video&&(this.video.bc=this.o==V.ua.Mb?50:60))):(b&=V.ua.ub,this.l!=b&&(this.l=b,this.video&&(a=this.video,b=this.l==V.ua.ub?132:80,a.C=b,a.M=a.va,80<b&&a.M--,uc(a)&&vc(a))))};
var V={Y:1978.1,Fc:{Z:0,ne:1,re:16,ye:32,He:64,Ge:128,Ha:14},za:{Z:1,Vb:1,yc:2,uc:4,vc:16,wc:32,xc:64,Ha:8},Gc:{Z:2,me:3,Qe:4,oe:8,Ce:16,De:32,Ee:64,pe:128,Ha:0},Le:{Z:3},Je:{Z:2,ze:7},Ne:{Z:3,Re:1,Me:2,Fe:4,we:8,qe:16,Id:32},Ke:{Z:4},Oe:{Z:5,se:1,te:2,ue:4,ve:8,Se:16}},W={Y:100,ga:{Z:66,zb:1,qc:2,rc:4,Be:8,Ae:16,xb:32,wb:64,sb:128},Tb:{Z:66,INIT:0},ua:{Z:194,Ld:0,pb:16,Ac:32,yb:48,cc:0,dc:32},Va:{Z:162,Ie:0,fc:0,bc:0,ec:0,ac:0},ia:{xe:{Z:98},Ca:{Qb:0,Pb:1,Dc:2,Lc:4,Wb:5,Bc:6,Pe:7},Xa:16383}},pc= var T={Y:1978.1,Nc:{Z:0,Ce:1,Ge:16,Ne:32,We:64,Ve:128,Ja:14},za:{Z:1,oc:1,Ic:2,Ec:4,Fc:16,Gc:32,Hc:64,Ja:8},Oc:{Z:2,Be:3,ef:4,De:8,Re:16,Se:32,Te:64,Ee:128,Ja:0},$e:{Z:3},Ye:{Z:2,Oe:7},bf:{Z:3,ff:1,af:2,Ue:4,Le:8,Fe:16,Xd:32},Ze:{Z:4},cf:{Z:5,He:1,Ie:2,Je:4,Ke:8,gf:16}},V={Y:100,ga:{Z:66,Qb:1,Cc:2,Dc:4,Qe:8,Pe:16,Ib:32,Hb:64,Cb:128},nc:{Z:66,INIT:0},ua:{Z:194,$d:0,ub:16,Jc:32,Mb:48,sc:0,tc:32},Xa:{Z:162,Xe:0,vc:0,rc:0,uc:0,qc:0},ia:{Me:{Z:98},Ca:{lc:0,kc:1,Lc:2,Pc:4,pc:5,Kc:6,df:7},Za:16383}},rc=
{SI1978:V,VT100:W};V.INIT=[[V.Fc.Ha,V.za.Ha,V.Gc.Ha,0,0,0,0]]; {SI1978:T,VT100:V};T.INIT=[[T.Nc.Ja,T.za.Ja,T.Oc.Ja,0,0,0,0]];
W.INIT=[[W.Tb.INIT,W.ga.qc|W.ga.rc],[W.ua.cc,W.ua.dc],[W.Va.fc,W.Va.bc,W.Va.ec,W.Va.ac],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], V.INIT=[[V.nc.INIT,V.ga.Cc|V.ga.Dc],[V.ua.sc,V.ua.tc],[V.Xa.vc,V.Xa.rc,V.Xa.uc,V.Xa.qc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];V.bb={0:U.prototype.Xc,1:U.prototype.Yc,2:U.prototype.Zc,3:U.prototype.Wc}; [11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];T.fb={0:S.prototype.dd,1:S.prototype.ed,2:S.prototype.fd,3:S.prototype.cd};
V.cb={2:U.prototype.ed,3:U.prototype.gd,4:U.prototype.fd,5:U.prototype.hd,6:U.prototype.jd};W.bb={66:U.prototype.$c};W.cb={66:U.prototype.kd,98:U.prototype.nd,162:U.prototype.md,194:U.prototype.ld};Ha(function(){for(var a=y(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new U(d);ja(d,c)}}); T.gb={2:S.prototype.qd,3:S.prototype.sd,4:S.prototype.rd,5:S.prototype.td,6:S.prototype.ud};V.fb={66:S.prototype.gd};V.gb={66:S.prototype.vd,98:S.prototype.yd,162:S.prototype.xd,194:S.prototype.wd};Ia(function(){for(var a=x(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new S(d);ka(d,c)}});
function uc(a){q.call(this,"ROM",a);this.a=null;this.g=a.addr;this.b=a.size;this.f=a.alias;this.c=a.file;this.h=na(this.c);if(this.c){a=this.c;var b=oa(this.h);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.c+"&format=bytes&decimal=true");var c=this;xa(a,null,!0,function(a,b,f){vc(c,a,b,f)})}}m(uc,q);uc.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;wc(this)};uc.prototype.ca=function(){this.sa&&(this.J&&this.J.a(this.id,this.g,this.b,this.sa),delete this.sa);return!0}; function wc(a){p.call(this,"ROM",a);this.a=null;this.g=a.addr;this.b=a.size;this.f=a.alias;this.c=a.file;this.h=oa(this.c);if(this.c){a=this.c;var b=pa(this.h);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.c+"&format=bytes&decimal=true");var c=this;ya(a,null,!0,function(a,b,f){xc(c,a,b,f)})}}l(wc,p);wc.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;yc(this)};wc.prototype.ca=function(){this.sa&&(this.J&&this.J.a(this.id,this.g,this.b,this.sa),delete this.sa);return!0};
uc.prototype.ba=function(){return!0}; wc.prototype.ba=function(){return!0};
function vc(a,b,c,d){if(d)a.G("Unable to load system ROM (error "+d+": "+b+")");else{aa(a.Ia,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.a=f;else if(g)for(a.a=Array(4*g.length),d=c=0;c<g.length;c++)a.a[d++]=g[c]&255,a.a[d++]=g[c]>>8&255,a.a[d++]=g[c]>>16&255,a.a[d++]=g[c]>>24&255;else a.a=e;a.sa=e.symbols;if(!a.a.length){u("Empty ROM: "+b);return}if(1==a.a.length){u(a.a[0]);return}}catch(h){a.G("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, function xc(a,b,c,d){if(d)a.G("Unable to load system ROM (error "+d+": "+b+")");else{ba(a.Ka,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.a=f;else if(g)for(a.a=Array(4*g.length),d=c=0;c<g.length;c++)a.a[d++]=g[c]&255,a.a[d++]=g[c]>>8&255,a.a[d++]=g[c]>>16&255,a.a[d++]=g[c]>>24&255;else a.a=e;a.sa=e.symbols;if(!a.a.length){t("Empty ROM: "+b);return}if(1==a.a.length){t(a.a[0]);return}}catch(h){a.G("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.a=Array(b.length),e=0;e<b.length;e++)a.a[e]=ma(b[e]);wc(a)}} " ").replace(/ +$/,"").split(" "),a.a=Array(b.length),e=0;e<b.length;e++)a.a[e]=na(b[e]);yc(a)}}
function wc(a){if(!ka(a))if(!a.c)z(a);else if(a.a&&a.u){a.b||(a.b=a.a.length);if(a.a.length!=a.b){var b="ROM size ("+B(a.a.length,8,!0)+") does not match specified size ("+B(a.b,8,!0)+")";a.i.error=!0;a.G(b)}else{b=a.g;if(Wa(a.u,b,a.b,nb)){var c;for(c=0;c<a.a.length;c++)cb(a.u,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.b,h=[],l=d.g>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=f.c;f=d.u; function yc(a){if(!la(a))if(!a.c)z(a);else if(a.a&&a.u){a.b||(a.b=a.a.length);if(a.a.length!=a.b){var b="ROM size ("+A(a.a.length,8,!0)+") does not match specified size ("+A(a.b,8,!0)+")";a.i.error=!0;a.G(b)}else{b=a.g;if(Ya(a.u,b,a.b,pb)){var c;for(c=0;c<a.a.length;c++)eb(a.u,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.b,h=[],m=d.g>>>f.b;0<g&&m<f.a.length;)h.push(f.a[m++]),g-=f.c;f=d.u;
d=d.b;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=f.c}}delete a.a}}z(a)}}Ha(function(){for(var a=y(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new uc(d);ja(d,c)}}); d=d.b;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){m=h[g++];if(!m)break;f.a[e++]=m;d-=f.c}}delete a.a}}z(a)}}Ia(function(){for(var a=x(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new wc(d);ka(d,c)}});
function xc(a){q.call(this,"RAM",a);this.sa=this.b=null;this.f=a.addr;this.g=a.size;this.Aa=a.load;this.ta=a.exec;this.c=!1;this.a=a.file;this.h=na(this.a);if(this.a){a=this.a;var b=oa(this.h);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;xa(a,null,!0,function(a,b,f){f?c.G("Unable to load RAM resource (error "+f+": "+a+")"):(aa(c.Ia,a,b),(a=ya(a,b))?(c.b=a.W,c.sa=a.sa,null==c.Aa&&(c.Aa=a.Aa),null==c.ta&&(c.ta=a.ta)):c.a=null,yc(c))})}}m(xc,q); function zc(a){p.call(this,"RAM",a);this.sa=this.b=null;this.f=a.addr;this.g=a.size;this.Aa=a.load;this.ta=a.exec;this.c=!1;this.a=a.file;this.h=oa(this.a);if(this.a){a=this.a;var b=pa(this.h);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;ya(a,null,!0,function(a,b,f){f?c.G("Unable to load RAM resource (error "+f+": "+a+")"):(ba(c.Ka,a,b),(a=za(a,b))?(c.b=a.W,c.sa=a.sa,null==c.Aa&&(c.Aa=a.Aa),null==c.ta&&(c.ta=a.ta)):c.a=null,Ac(c))})}}l(zc,p);
xc.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;yc(this)};xc.prototype.ca=function(){return!0};xc.prototype.ba=function(){return!0}; zc.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;Ac(this)};zc.prototype.ca=function(){return!0};zc.prototype.ba=function(){return!0};
function yc(a){!a.c&&a.g&&Wa(a.u,a.f,a.g,1)&&(a.c=!0);if(!ka(a)){if(!a.c)u("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;var b=a.f;null!==a.Aa&&(b=a.Aa);for(var c=0;c<a.b.length;c++)cb(a.u,b+c,a.b[c]);if(null!==a.ta){if(a.ta==zc){for(c=0;c<Ac.length;c++)cb(a.u,Ac[c],118);Rb(a.m,function(a){return function(b){if(0<=Ac.indexOf(b)){var c=!1,d=a.m,e=a.J;if(b==Bc)switch(c=!0,d.c){case Cc:Dc(a,String.fromCharCode(d.f));break;case Ec:for(var l=Yb(d),n="",v=255;v--;){var A=M(a.m,l++);if(36==A)break; function Ac(a){!a.c&&a.g&&Ya(a.u,a.f,a.g,1)&&(a.c=!0);if(!la(a)){if(!a.c)t("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;var b=a.f;null!==a.Aa&&(b=a.Aa);for(var c=0;c<a.b.length;c++)eb(a.u,b+c,a.b[c]);if(null!==a.ta){if(a.ta==Bc){for(c=0;c<Cc.length;c++)eb(a.u,Cc[c],118);Tb(a.m,function(a){return function(b){if(0<=Cc.indexOf(b)){var c=!1,d=a.m,e=a.J;if(b==Dc)switch(c=!0,d.c){case Ec:Fc(a,String.fromCharCode(d.f));break;case Gc:for(var m=$b(d),q="",w=255;w--;){var B=K(a.m,m++);if(36==B)break;
n+=String.fromCharCode(A)}Dc(a,n);break;default:c=!1}c?nc.call(d):e&&(a.aa("\nCP/M vector "+B(b,4,!0)),F(d,b),Cb(e));b=!0}else b=!1;return b}}(a))}Tb(a.m,a.ta)}delete a.b}z(a)}}xc.prototype.reset=function(){};function Dc(a,b){b=b.replace(/\r/g,"");a.pa&&(a.pa.value+=b,a.pa.scrollTop=a.pa.scrollHeight)}var Bc=5,Cc=2,Ec=9,zc=256,Ac=[0,Bc];Ha(function(){for(var a=y(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new xc(d);ja(d,c)}}); q+=String.fromCharCode(B)}Fc(a,q);break;default:c=!1}c?pc.call(d):e&&(a.aa("\nCP/M vector "+A(b,4,!0)),D(d,b),Eb(e));b=!0}else b=!1;return b}}(a))}Vb(a.m,a.ta)}delete a.b}z(a)}}zc.prototype.reset=function(){};function Fc(a,b){b=b.replace(/\r/g,"");a.pa&&(a.pa.value+=b,a.pa.scrollTop=a.pa.scrollHeight)}var Dc=5,Ec=2,Gc=9,Bc=256,Cc=[0,Dc];Ia(function(){for(var a=x(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new zc(d);ka(d,c)}});
function Fc(a){q.call(this,"Keyboard",a);(a=a.model)&&!Gc[a]&&ea("Unrecognized Keyboard8080 model: "+a);this.a=Gc[a]||{};this.reset();z(this)}m(Fc,q);k=Fc.prototype; function Hc(a){p.call(this,"Keyboard",a);(a=a.model)&&!Ic[a]&&fa("Unrecognized Keyboard8080 model: "+a);this.a=Ic[a]||{};this.reset();z(this)}l(Hc,p);k=Hc.prototype;
k.S=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.a.Ja[b])return this.w[e]=c,!0;switch(b){case "kbd":case "screen":return c.onkeydown=function(a){return Hc(d,a,!0)},c.onkeyup=function(a){return Hc(d,a,!1)},c.onkeypress=function(a){a=a.keyCode;a>=p.Ua&&a<=p.ib?d.b&(Ic|Jc)||(d.b|=Jc,Kc(d,20,!0),Lc(d)):a>=p.Oc&&a<=p.z&&d.b&Jc&&(d.b&=~Jc,Kc(d,20,!1),Lc(d));return!0},c.onpaste=function(a){a:{if(d.g&&d.g.Ba&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(), k.S=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.a.La[b])return this.w[e]=c,!0;switch(b){case "kbd":case "screen":return Ea("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.a.Wa[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.a.Da)if(d.a.Da[c]==a){c=+c;break a}c=0}c&&(b?Jc(d,16,!0,!0):Jc(d,16,!1),Jc(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Kc(d,a,!0)},c.onkeyup=function(a){return Kc(d,a,!1)}):(c.onkeydown=function(a){return Lc(d,a,!0)},
a=a.clipboardData||window.clipboardData)){Mc(d.g,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.a.Ea&&void 0!==this.a.Ea[b])return this.w[e]=c,c.onclick=function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=17!=b;if(!e){c.style.fontWeight="normal";if(d=!(a.b&Nc))c.style.fontWeight="bold";Oc(a,b,d)}Kc(a,b,d,e);a.D&&Hb(a.D)}}(this,this.a.Ea[b]),!0}}return!1}; c.onkeyup=function(a){return Lc(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=n.Ia&&a<=n.$a?d.b&(Mc|Nc)||(d.b|=Nc,Jc(d,20,!0),Oc(d)):a>=n.Wb&&a<=n.z&&d.b&Nc&&(d.b&=~Nc,Jc(d,20,!1),Oc(d));return!0}),c.onpaste=function(a){a:{if(d.g&&d.g.Ba&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Pc(d.g,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.a.Fa&&void 0!==this.a.Fa[b])return this.w[e]=c,c.onclick=
k.qa=function(a,b,c,d){this.D=a;this.m=c;this.J=d;var e=this;this.v=Ib(this.m,function(){Pc(e)});this.N=C(a,"ChipSet");this.g=C(a,"SerialPort");fb(b,this,this.a.bb);gb(b,this,this.a.cb)};k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.c=[];this.b=0;this.a.INIT&&!this.restore(this.a.INIT)&&this.G("reset error")}; function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Qc:20==b&&(e=Nc);if(e){c.style.fontWeight="normal";if(d=!(a.b&e))c.style.fontWeight="bold";Rc(a,b,d)}Jc(a,b,d,!e);a.D&&Jb(a.D)}}(this,this.a.Fa[b]),!0}}return!1};k.qa=function(a,b,c,d){this.D=a;this.m=c;this.J=d;var e=this;this.v=Kb(this.m,function(){Sc(e)});this.N=Ta(a,"ChipSet");this.g=Ta(a,"SerialPort");hb(b,this,this.a.fb);ib(b,this,this.a.gb)};
k.save=function(){var a=new G(this);switch(this.a.Y){case X.Y:a.set(0,[this.l,this.j,this.h,this.o,-1])}return a.data()};k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.a.Y){case Qc.Y:return!0;case X.Y:return this.l=b[0],Lc(this,this.l&X.fa.ub),this.j=b[1],this.h=b[2],this.o=b[3],this.f=b[4],!0}return!1}; k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.c=[];this.b=0;this.a.INIT&&!this.restore(this.a.INIT)&&this.G("reset error")};k.save=function(){var a=new E(this);switch(this.a.Y){case W.Y:a.set(0,[this.l,this.j,this.h,this.o,-1])}return a.data()};
function Lc(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.a.Ja)if(c="led-"+d,c=a.w[c]){var e=a.a.Ja[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+B(16711680,6):"#000000"}if(c=a.w["led-caps-lock"])c.style.backgroundColor=a.b&Jc?"#"+B(65280,6):"#000000"}function Oc(a,b,c,d){var e=0;switch(b){case 16:e=d?Rc:Sc;break;case 17:e=d?Tc:Nc;break;case 18:e=d?Uc:Vc;break;case 91:e=d?Wc:Yc;break;case 20:e=Jc}e&&(a.b=c?a.b|e:a.b&~e)} k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.a.Y){case Tc.Y:return!0;case W.Y:return this.l=b[0],Oc(this,this.l&W.fa.Db),this.j=b[1],this.h=b[2],this.o=b[3],this.f=b[4],!0}return!1};function Oc(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.a.La)if(c="led-"+d,c=a.w[c]){var e=a.a.La[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+A(16711680,6):"#000000"}if(c=a.w["led-caps-lock"])c.style.backgroundColor=a.b&Nc?"#"+A(65280,6):"#000000"}
function Hc(a,b,c){var d=!0,e=b.keyCode;Oc(a,e,c,2==b.location);var f;a:if(e=a.a.ob[e]||e,a.a.hb[e])f=e;else{for(f in a.a.Ea)if(a.a.Ea[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.b&(Zc|$c)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.b=c?a.b|$c:a.b&~$c)),d=Kc(a,f,c),(!(f>=p.Ua&&f<=p.ib)||a.b|ad)&&b.preventDefault&&b.preventDefault());return d} function Rc(a,b,c,d){var e=0;switch(b){case 16:e=d?Uc:Vc;break;case 17:e=d?Wc:Qc;break;case 18:e=d?Xc:Yc;break;case 91:e=d?$c:ad;break;case 20:e=Nc,c=!(a.b&e)}e&&(a.b=c?a.b|e:a.b&~e);return c}
function Kc(a,b,c,d){var e;a:{for(e=0;e<a.c.length;e++)if(a.c[e].nb==b)break a;e=-1}if(c)0>e?a.c.push({nb:b,lb:Date.now(),$a:d||!1}):(a.c[e].lb=Date.now(),a.c[e].$a=d||!1),d&&Pc(a);else if(0<=e){if(!a.c[e].$a&&(d=a.c[e].lb)&&Date.now()-d<bd)return a.c[e].$a=!0,Pc(a),!0;a.c.splice(e,1)}if(a.N){d=0;switch(b){case "1p":d=V.za.uc;break;case "2p":d=V.za.yc;break;case "coin":d=V.za.Vb;break;case "left":d=V.za.wc;break;case "right":d=V.za.xc;break;case "fire":d=V.za.vc}d&&(a=a.N,b=d,a.f&=~b,c&&(a.f|=b))}return!0} function Lc(a,b,c){var d=!0,e=b.keyCode,e=aa[e]||e;c=Rc(a,e,c,2==b.location);var f;a:if(e=a.a.rb[e]||e,a.a.Da[e])f=e;else{for(f in a.a.Fa)if(a.a.Fa[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.b&(bd|cd)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.b=c?a.b|cd:a.b&~cd)),d=Jc(a,f,c),(!(f>=n.Ia&&f<=n.$a)||a.b|dd)&&b.preventDefault&&b.preventDefault());return d}
function Pc(a){for(var b=0,c=-1;b<a.c.length;){if(a.c[b].$a){var d=a.c[b].nb,e=bd-(Date.now()-a.c[b].lb);if(0<e){if(0>c||c>e)c=e}else{Kc(a,d,!1);b=0;continue}}b++}0<=c&&Jb(a.m,a.v,c)}k.ad=function(){var a=this.j;0<=this.f&&(this.f<this.c.length?(a=this.c[this.f],this.f++,a=X.hb[a.nb],a&128&&(a&=127)):(this.f=-1,a=X.ic),this.j=a,kc(this.m,1));return a};k.od=function(a,b){this.l=b;this.h=!0;this.o=Gb(this.m);Lc(this,b&X.fa.ub);b&X.fa.Ec&&(this.f=0,kc(this.m,1))}; function Kc(a,b,c){var d=!0;if(c){b=b.keyCode;var e=a.a.Da[b];if(e){var f;a:{for(f in a.a.Wa)if(a.a.Wa[f]==e){f=+f;break a}f=0}f||(d=Jc(a,b,c,!0))}}return d}
var Rc=1,Sc=2,Ic=3,Tc=4,Nc=8,ad=12,Uc=16,Vc=32,Zc=48,Wc=64,Yc=128,Jc=512,$c=4096,bd=50,cd={};cd[p.Ua]=37;cd[p.rb]=39;cd[p.tb]=32; function Jc(a,b,c,d){var e;a:{for(e=0;e<a.c.length;e++)if(a.c[e].qb==b)break a;e=-1}if(c)0>e?a.c.push({qb:b,ob:Date.now(),cb:d||!1}):(a.c[e].ob=Date.now(),a.c[e].cb=d||!1),d&&Sc(a);else if(0<=e){if(!a.c[e].cb&&(d=a.c[e].ob)&&Date.now()-d<ed)return a.c[e].cb=!0,Sc(a),!0;a.c.splice(e,1)}if(a.N){d=0;switch(b){case "1p":d=T.za.Ec;break;case "2p":d=T.za.Ic;break;case "coin":d=T.za.oc;break;case "left":d=T.za.Gc;break;case "right":d=T.za.Hc;break;case "fire":d=T.za.Fc}d&&(a=a.N,b=d,a.f&=~b,c&&(a.f|=b))}return!0}
var Qc={Y:1978.1,hb:{},ob:cd,Ja:{},Ea:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Z={},X={Y:100,hb:(Z[8]=3,Z[p.tc]=5,Z[p.sc]=6,Z[p.Nc]=7,Z[p.Hc]=8,Z[p.Kc]=9,Z[p.Q]=10,Z[39]=16,Z[221]=20,Z[219]=21,Z[p.$b]=22,Z[p.Ic]=23,Z[p.zc]=24,Z[p.E]=25,Z[49]=26,Z[37]=32,Z[40]=34,Z[117]=35,Z[19]=35,Z[192]=36,Z[189]=37,Z[57]=38,Z[55]=39,Z[52]=40,Z[51]=41,Z[27]=42,Z[38]=48,Z[114]=49,Z[112]=50,Z[46]=51,Z[187]=52,Z[48]=53,Z[56]=54,Z[54]=55,Z[53]=56,Z[50]=57,Z[9]=58,Z[103]=64,Z[115]=65,Z[113]=66,Z[96]=67,Z[118]= function Sc(a){for(var b=0,c=-1;b<a.c.length;){if(a.c[b].cb){var d=a.c[b].qb,e=ed-(Date.now()-a.c[b].ob);if(0<e){if(0>c||c>e)c=e}else{Jc(a,d,!1);b=0;continue}}b++}0<=c&&Lb(a.m,a.v,c)}k.hd=function(){var a=this.j;0<=this.f&&(this.f<this.c.length?(a=this.c[this.f],this.f++,a=W.Da[a.qb],a&128&&(a&=127)):(this.f=-1,a=W.wc),this.j=a,mc(this.m,1));return a};k.zd=function(a,b){this.l=b;this.h=!0;this.o=Ib(this.m);Oc(this,b&W.fa.Db);b&W.fa.Mc&&(this.f=0,mc(this.m,1))};
68,Z[220]=69,Z[p.tb]=70,Z[p.hc]=71,Z[p.Yb]=72,Z[p.Xb]=73,Z[p.Ua]=74,Z[104]=80,Z[2013]=81,Z[98]=82,Z[97]=83,Z[222]=85,Z[186]=86,Z[p.gc]=87,Z[p.Zb]=88,Z[p.rb]=89,Z[p.Cc]=90,Z[110]=96,Z[116]=97,Z[101]=98,Z[100]=99,Z[13]=100,Z[190]=101,Z[188]=102,Z[p.pc]=103,Z[p.Sb]=104,Z[p.Mc]=105,Z[119]=106,Z[105]=112,Z[99]=113,Z[102]=114,Z[109]=115,Z[191]=117,Z[p.oc]=118,Z[p[" "]]=119,Z[p.Jc]=120,Z[p.Ub]=121,Z[p.ib]=122,Z[120]=123,Z[17]=124,Z[16]=125,Z[20]=126,Z),ob:{},Ja:{},Ea:{ctrl:17,esc:27,tab:9,"num-comma":116, var Uc=1,Vc=2,Mc=3,Wc=4,Qc=8,dd=12,Xc=16,Yc=32,bd=48,$c=64,ad=128,Nc=512,cd=4096,ed=50,fd={};fd[n.Ia]=37;fd[n.kb]=39;fd[n.lb]=32;
"break":117,"line-feed":118,"no-scroll":119,setup:120},Rb:{Z:130,INIT:127},fa:{Z:130,mc:1,lc:2,kc:4,jc:8,nc:16,vb:32,ub:63,Ec:64,Kd:128,INIT:0},ic:127};X.Ja={l4:X.fa.mc,l3:X.fa.lc,l2:X.fa.kc,l1:X.fa.jc,locked:X.fa.nc,local:X.fa.vb,online:~X.fa.vb,"caps-lock":Jc};var Gc={SI1978:Qc,VT100:X};X.INIT=[[X.fa.INIT,X.Rb.INIT,!1,0,-1]];X.bb={130:Fc.prototype.ad};X.cb={130:Fc.prototype.od};Ha(function(){for(var a=y(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Fc(d);ja(d,c)}}); var Tc={Y:1978.1,Da:{},Wa:{},rb:fd,La:{},Fa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},X={},Y={},W={Y:100,Da:(X[8]=3,X[n.Kb]=5,X[n.Jb]=6,X[n.Vb]=7,X[n.Ob]=8,X[n.Sb]=9,X[n.Q]=10,X[39]=16,X[221]=20,X[219]=21,X[n.zb]=22,X[n.Pb]=23,X[n.Lb]=24,X[n.E]=25,X[49]=26,X[37]=32,X[40]=34,X[117]=35,X[19]=35,X[192]=36,X[189]=37,X[57]=38,X[55]=39,X[52]=40,X[51]=41,X[27]=42,X[38]=48,X[114]=49,X[112]=50,X[46]=51,X[187]=52,X[48]=53,X[56]=54,X[54]=55,X[53]=56,X[50]=57,X[9]=58,X[103]=64,X[115]=65,X[113]=66,X[96]=
function dd(a,b,c,d,e){q.call(this,"Video",a);var f=this;this.Da=Da("Gecko/");var g=["","moz","ms","webkit"];this.A=a.screenWidth;this.s=a.screenHeight;this.da=a.bufferAddr;this.Pc=a.bufferRAM;var h=a.bufferFormat;this.P=h&&ed[h.toUpperCase()]||fd;this.C=a.bufferCols;this.R=a.bufferRows;this.va=this.M=a.cellWidth||1;this.K=a.cellHeight||1;this.V=null;this.ya=!1;this.ea=a.bufferBits||1;this.Qc=a.bufferLeft||0;if(this.b=a.bufferRotate)this.b=this.b%360,0<this.b&&(this.b-=360),-90!=this.b&&(this.G("unsupported buffer rotation: "+ 67,X[118]=68,X[220]=69,X[n.lb]=70,X[n.Bb]=71,X[n.xb]=72,X[n.wb]=73,X[n.Ia]=74,X[104]=80,X[2013]=81,X[98]=82,X[97]=83,X[222]=85,X[186]=86,X[n.Ab]=87,X[n.yb]=88,X[n.kb]=89,X[n.Nb]=90,X[110]=96,X[116]=97,X[101]=98,X[100]=99,X[13]=100,X[190]=101,X[188]=102,X[n.Gb]=103,X[n.sb]=104,X[n.Ub]=105,X[119]=106,X[105]=112,X[99]=113,X[102]=114,X[109]=115,X[191]=117,X[n.Fb]=118,X[n[" "]]=119,X[n.Rb]=120,X[n.tb]=121,X[n.$a]=122,X[120]=123,X[17]=124,X[16]=125,X[20]=126,X),Wa:(Y[n.p]=5,Y[n.md]=6,Y[n.y]=7,Y[n.t]=8,
this.b),this.b=0);this.ha=a.interruptRate;this.Na=a.refreshRate||60;this.o=b;this.c=c;this.L=(this.Tc=d)||b||null;this.jb=this.A;this.Ob=this.s;this.wa=this.A/this.C|0;this.xa=this.s/this.R|0;1<this.K&&(this.R++,this.la=0,this.na=!1);b=a.smoothing;(c=Ea("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.c[d]){this.c[d]=b;break}if(this.f=a.screenRotate)this.f=this.f%360,0<this.f&&(this.f-=360),-90!=this.f?(this.G("unsupported screen rotation: "+ Y[n.Nd]=9,Y[n.q]=10,Y[n["]"]]=20,Y[n["["]]=21,Y[n.$c]=22,Y[n.Ld]=23,Y[n.r]=24,Y[n.e]=25,Y[n["1"]]=26,Y[n["`"]]=36,Y[n["-"]]=37,Y[n["9"]]=38,Y[n["7"]]=39,Y[n["4"]]=40,Y[n["3"]]=41,Y[n["="]]=52,Y[n["0"]]=53,Y[n["8"]]=54,Y[n["6"]]=55,Y[n["5"]]=56,Y[n["2"]]=57,Y[n["\\"]]=69,Y[n.kd]=70,Y[n.k]=71,Y[n.Yc]=72,Y[n.Xc]=73,Y[n.Wb]=74,Y[n["'"]]=85,Y[n[";"]]=86,Y[n.jd]=87,Y[n.Zc]=88,Y[n.d]=89,Y[n.Kd]=90,Y[13]=100,Y[n["."]]=101,Y[n[","]]=102,Y[n.n]=103,Y[n.Rc]=104,Y[n.x]=105,Y[n["/"]]=117,Y[n.ld]=118,Y[n[" "]]=
this.f),this.f=0):(this.c.translate(0,this.s),this.c.rotate(this.f*Math.PI/180),this.c.scale(this.s/this.A,this.A/this.s));if(this.a=e)if(this.a.Ga=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.a.Ga){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){gd(f,!!(document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement))},!1); 119,Y[n.Md]=120,Y[n.Tc]=121,Y[n.z]=122,Y[n.Kb]=133,Y[n.Jb]=134,Y[n.Vb]=135,Y[n.Ob]=136,Y[n.Sb]=137,Y[n.Q]=138,Y[n["}"]]=148,Y[n["{"]]=149,Y[n.zb]=150,Y[n.Pb]=151,Y[n.Lb]=152,Y[n.E]=153,Y[n["!"]]=154,Y[n["~"]]=164,Y[n._]=165,Y[n["("]]=166,Y[n["&"]]=167,Y[n.$]=168,Y[n["#"]]=169,Y[n["+"]]=180,Y[n[")"]]=181,Y[n["*"]]=182,Y[n["^"]]=183,Y[n["%"]]=184,Y[n["@"]]=185,Y[n["|"]]=197,Y[n.lb]=198,Y[n.Bb]=199,Y[n.xb]=200,Y[n.wb]=201,Y[n.Ia]=202,Y[n['"']]=213,Y[n[":"]]=214,Y[n.Ab]=215,Y[n.yb]=216,Y[n.kb]=217,Y[n.Nb]=
break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){gd(f,null)},!1);break}}if(this.F=a.fontROM)"json"!=oa(this.F)&&(this.F=qa()+"/api/v1/dump?file="+this.F+"&format=bytes"),xa(this.F,null,!0,function(a,b,c){hd(f,a,b,c)});this.ra={}}m(dd,q); 218,Y[n[">"]]=229,Y[n["<"]]=230,Y[n.Gb]=231,Y[n.sb]=232,Y[n.Ub]=233,Y[n["?"]]=245,Y[n.Fb]=246,Y[n.Rb]=248,Y[n.tb]=249,Y[n.$a]=250,Y),rb:{},La:{},Fa:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},mc:{Z:130,INIT:127},fa:{Z:130,Ac:1,zc:2,yc:4,xc:8,Bc:16,Eb:32,Db:63,Mc:64,Zd:128,INIT:0},wc:127};W.La={l4:W.fa.Ac,l3:W.fa.zc,l2:W.fa.yc,l1:W.fa.xc,locked:W.fa.Bc,local:W.fa.Eb,online:~W.fa.Eb,"caps-lock":Nc};var Ic={SI1978:Tc,VT100:W};
function sc(a){a.j=a.C*a.M;a.B=a.R*a.K;var b=a.j,c=a.B;a.b&&(b=a.B,c=a.j);a.v=0;if(!a.Pc&&(a.v=(a.j*a.ea>>3)*a.B,!Wa(a.u,a.da,a.v,3)))return!1;a.v?(a.Fa=a.c.createImageData(b,c),a.La=16/a.ea|0,id(a,a.v>>1)):id(a,(a.C+1)*a.R);a.l=document.createElement("canvas");a.l.width=b;a.l.height=c;a.ma=a.l.getContext("2d");a.H={};a.O=1<<a.ea;a.I=Array(a.O+jd);a.I[0]=[0,0,0,255];a.I[1]=[255,255,255,255];a.P==kd&&(a.I[a.O+ld]=[255,255,0,255],a.I[a.O+md]=[0,255,0,255]);a.P==nd&&(a.Gb=60,a.oa=!1,a.X=Array(a.C)); W.INIT=[[W.fa.INIT,W.mc.INIT,!1,0,-1]];W.fb={130:Hc.prototype.hd};W.gb={130:Hc.prototype.zd};Ia(function(){for(var a=x(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Hc(d);ka(d,c)}});
return!0}k=dd.prototype;k.S=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ra[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.a&&this.a.Ga?c.onclick=function(){d.Ga()}:c.parentNode.removeChild(c),!0}return!1}; function gd(a,b,c,d,e){p.call(this,"Video",a);var f=this;this.Ea=Ea("Gecko/");var g=["","moz","ms","webkit"];this.A=a.screenWidth;this.s=a.screenHeight;this.da=a.bufferAddr;this.Qc=a.bufferRAM;var h=a.bufferFormat;this.P=h&&hd[h.toUpperCase()]||id;this.C=a.bufferCols;this.R=a.bufferRows;this.va=this.M=a.cellWidth||1;this.K=a.cellHeight||1;this.V=null;this.ya=!1;this.ea=a.bufferBits||1;this.Sc=a.bufferLeft||0;if(this.b=a.bufferRotate)this.b=this.b%360,0<this.b&&(this.b-=360),-90!=this.b&&(this.G("unsupported buffer rotation: "+
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;sc(this);if(this.h=C(a,"Keyboard")){for(var e in this.ra)this.h.S("led",e,this.ra[e]);this.o&&this.h.S(this.Tc?"textarea":"canvas","screen",this.L)}var f=this;this.Oa=Ib(this.m,function(){Nb(f)});Jb(this.m,this.Oa,1E3/Math.max(this.Na,this.ha));this.Ma=0;this.F||z(this)}; this.b),this.b=0);this.ha=a.interruptRate;this.Pa=a.refreshRate||60;this.o=b;this.c=c;this.L=(this.Wc=d)||b||null;this.mb=this.A;this.jc=this.s;this.wa=this.A/this.C|0;this.xa=this.s/this.R|0;1<this.K&&(this.R++,this.la=0,this.na=!1);b=a.smoothing;(c=Fa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.c[d]){this.c[d]=b;break}if(this.f=a.screenRotate)this.f=this.f%360,0<this.f&&(this.f-=360),-90!=this.f?(this.G("unsupported screen rotation: "+
function hd(a,b,c,d){if(d)a.G("Unable to load font ROM (error "+d+": "+b+")");else{aa(a.Ia,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){u("Empty font ROM: "+b);return}if(1==f.length){u(f[0]);return}if(2048==f.length)a.V=f,tc(a);else{a.G("Unrecognized font data length ("+f.length+")");return}}catch(g){a.G("Font ROM data error: "+g.message);return}(a.c||a.J)&&z(a)}} this.f),this.f=0):(this.c.translate(0,this.s),this.c.rotate(this.f*Math.PI/180),this.c.scale(this.s/this.A,this.A/this.s));if(this.a=e)if(this.a.Ha=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.a.Ha){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){jd(f,!!(document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement))},!1);
function tc(a){a.V&&(a.ya=a.P==nd,a.H[od]=[pd(a,a.M,a.K),pd(a,a.M,a.K,a.oa)],a.H[qd]=[pd(a,2*a.M,a.K),pd(a,2*a.M,a.K,a.oa)],a.H[rd]=a.H[sd]=[pd(a,2*a.M,2*a.K),pd(a,2*a.M,2*a.K,a.oa)])} break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){jd(f,null)},!1);break}}if(this.F=a.fontROM)"json"!=pa(this.F)&&(this.F=ra()+"/api/v1/dump?file="+this.F+"&format=bytes"),ya(this.F,null,!0,function(a,b,c){kd(f,a,b,c)});this.ra={}}l(gd,p);
function pd(a,b,c,d){var e=8>=a.va?8:16,f=8<e?15:0,g=a.V.length/e,h=!1===d,l={M:b,K:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=g/16*c;l.context=l.canvas.getContext("2d");for(var n=l.context.createImageData(b,c),v=0;v<g;v++){for(var A=0,K=A;A<a.K;A++)for(var x=v*e+(f+A&e-1),x=d&&8==A?255:a.V[x],t=0;t<c/a.K;t++){for(var E=0,T=0,Y=T;T<a.M;T++){for(var ca=x&128>>(7<T?7:T),E=a.ya&&!ca&&E?E:ca,ta=0;ta<b/a.M;ta++)h&&(E=!E),td(a,n,Y,K,E?1:0),Y++;E=ca}K++}l.context.putImageData(n, function uc(a){a.j=a.C*a.M;a.B=a.R*a.K;var b=a.j,c=a.B;a.b&&(b=a.B,c=a.j);a.v=0;if(!a.Qc&&(a.v=(a.j*a.ea>>3)*a.B,!Ya(a.u,a.da,a.v,3)))return!1;a.v?(a.Ga=a.c.createImageData(b,c),a.Na=16/a.ea|0,ld(a,a.v>>1)):ld(a,(a.C+1)*a.R);a.l=document.createElement("canvas");a.l.width=b;a.l.height=c;a.ma=a.l.getContext("2d");a.H={};a.O=1<<a.ea;a.I=Array(a.O+md);a.I[0]=[0,0,0,255];a.I[1]=[255,255,255,255];a.P==nd&&(a.I[a.O+od]=[255,255,0,255],a.I[a.O+pd]=[0,255,0,255]);a.P==qd&&(a.bc=60,a.oa=!1,a.X=Array(a.C));
(v&15)*b,(v>>4)*c)}return l}k.ca=function(a,b){return b||!a||this.restore(a)?!0:!1};k.ba=function(a){return!a||this.save()};k.save=function(){var a=new G(this);a.set(0,[]);return a.data()};k.restore=function(){return!0}; return!0}k=gd.prototype;k.S=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ra[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.a&&this.a.Ha?c.onclick=function(){d.Ha()}:c.parentNode.removeChild(c),!0}return!1};
k.Ga=function(){var a=!1;if(this.a){if(this.a.Ga){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.A/this.s;b>c&&(a=Math.round(c/b*100)+"%")}this.Da?(this.o.style.width=a,this.o.style.width=a,this.o.style.display="block",this.o.style.margin="auto"):(this.a.style.width=a,this.a.style.height="auto");this.a.style.backgroundColor="black";this.a.Ga();a=!0}this.L&&this.L.focus()}return a}; k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;uc(this);if(this.h=Ta(a,"Keyboard")){for(var e in this.ra)this.h.S("led",e,this.ra[e]);this.o&&this.h.S(this.Wc?"textarea":"canvas","screen",this.L)}var f=this;this.Qa=Kb(this.m,function(){Pb(f)});Lb(this.m,this.Qa,1E3/Math.max(this.Pa,this.ha));this.Oa=0;this.F||z(this)};
function gd(a,b){!b&&a.a&&(a.Da?a.o.style.width=a.o.style.height="":a.a.style.width=a.a.style.height="")}function id(a,b){a.Ka=b;a.N=!1;if(void 0===a.g||a.g.length!=a.Ka)a.g=Array(a.Ka)}function td(a,b,c,d,e){d=a.b?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.P==kd&&(208<=c&&236>c?e=a.O+ld:28<=c&&72>c&&(e=a.O+md));a=a.I[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} function kd(a,b,c,d){if(d)a.G("Unable to load font ROM (error "+d+": "+b+")");else{ba(a.Ka,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){t("Empty font ROM: "+b);return}if(1==f.length){t(f[0]);return}if(2048==f.length)a.V=f,vc(a);else{a.G("Unrecognized font data length ("+f.length+")");return}}catch(g){a.G("Font ROM data error: "+g.message);return}(a.c||a.J)&&z(a)}}
function Nb(a,b){var c=!0;if(!b){a.ha&&(120==a.ha?a.Ma&1?(kc(a.m,2),c=!1):kc(a.m,1):kc(a.m,4));if(c&&a.N&&a.v){for(var d=a.u,e=a.v,f=!0,g=a.da>>>d.b;0<e&&g<d.a.length;)d.a[g].ja&&(d.a[g].ja=f=!1,d.a[g].Db=!0),e-=d.c,g++;f&&(c=!1)}Jb(a.m,a.Oa,1E3/Math.max(a.Na,a.ha));a.Ma++}if(c)if(1<a.M)switch(a.P){case nd:for(var c=a.da,d=-1,e=0,f=60==a.Gb?2:5,h=g=0,l=-1;e<a.R;){var n=0,v=c,A=d,K=a.C;for(A!=od&&(K>>=1);;){var x=ab(a.u,v++);if((x&ud)==ud){var t=ab(a.u,v++),d=t&vd,c=(t&wd)<<8|ab(a.u,v),c=c+(t&xd?yd: function vc(a){a.V&&(a.ya=a.P==qd,a.H[rd]=[sd(a,a.M,a.K),sd(a,a.M,a.K,a.oa)],a.H[td]=[sd(a,2*a.M,a.K),sd(a,2*a.M,a.K,a.oa)],a.H[ud]=a.H[vd]=[sd(a,2*a.M,2*a.K),sd(a,2*a.M,2*a.K,a.oa)])}
zd);break}if(n<K)a.X[n++]=x;else break}if(f)f--;else{for(;n<a.X.length;)a.X[n++]=0;if(0<=A)for(v=a.N&&a.g[g]==K,a.g[g++]=K,K=0;K<n;K++){x=a.X[K];if(!v||x!==a.g[g]){a.g[l=g]=x;var t=a,E=a.ma,T=x&127;if(x=t.H[A][x&128?1:0]){var Y=(T&15)*x.M,T=(T>>4)*x.K,ca,ta,Ta,lb,Xc=x.M,Xb=x.K;E?(ca=K*t.M,ta=e*t.K,Ta=t.M,lb=t.K):(ca=K*t.wa,ta=e*t.xa,Ta=t.wa,lb=t.xa);x.M>t.M&&(ca*=2,Ta*=2);x.K>t.K&&(A==sd&&(T+=t.K),Xb=t.K);E?E.drawImage(x.canvas,Y,T,Xc,Xb,ca,ta,Ta,lb):(ca+=0,ta+=0,t.c.drawImage(x.canvas,Y,T,Xc,Xb, function sd(a,b,c,d){var e=8>=a.va?8:16,f=8<e?15:0,g=a.V.length/e,h=!1===d,m={M:b,K:c};m.canvas=document.createElement("canvas");m.canvas.width=16*b;m.canvas.height=g/16*c;m.context=m.canvas.getContext("2d");for(var q=m.context.createImageData(b,c),w=0;w<g;w++){for(var B=0,L=B;B<a.K;B++)for(var y=w*e+(f+B&e-1),y=d&&8==B?255:a.V[y],v=0;v<c/a.K;v++){for(var F=0,U=0,Z=U;U<a.M;U++){for(var da=y&128>>(7<U?7:U),F=a.ya&&!da&&F?F:da,wa=0;wa<b/a.M;wa++)h&&(F=!F),wd(a,q,Z,L,F?1:0),Z++;F=da}L++}m.context.putImageData(q,
ca,ta,Ta,lb))}h++}g++}e++}}a.N=!0;!b&&a.na&&1==h&&(a.g[l]=-1,h=0);a.na=!1;(h||b)&&a.ma&&a.c.drawImage(a.l,0,a.la,a.j,a.B-a.K,0,0,a.jb,a.Ob)}else{e=a.da;f=e+a.v;l=h=g=0;b=a.j;n=0;c=a.B;A=d=0;v=a.ea;K=(1<<v)-1;a.Qc&&(v=-v,A=16+v);for(;e<f;){t=a.u;E=e;x=E&t.f;Y=(E&t.g)>>>t.b;t=x!=t.f?t.a[Y].Jb(x,E):t.a[Y++].eb(x,E)|t.a[Y&t.o].eb(0,E+1)<<8;if(a.N&&t===a.g[g])h+=a.La;else{a.g[g]=t;(E=A)&&(t=t>>8|(t&255)<<8);h<b&&(b=h);for(x=a.La;x--;)Y=t>>E&K,td(a,a.Fa,h++,l,Y),E+=v;h>n&&(n=h);l<c&&(c=l);l>=d&&(d=l+1)}e+= (w&15)*b,(w>>4)*c)}return m}k.ca=function(a,b){return b||!a||this.restore(a)?!0:!1};k.ba=function(a){return!a||this.save()};k.save=function(){var a=new E(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};
2;g++;if(h>=a.j&&(h=0,l++,l>a.B))break}a.N=!0;b<a.j&&(e=n-b,d-=c,a.b&&(f=b,g=e,b=c,e=d,c=a.j-(f+g),d=g),a.ma.putImageData(a.Fa,0,0,b,c,e,d),a.c.drawImage(a.l,0,0,a.l.width,a.l.height,0,0,a.A,a.s))}}var ld=0,md=1,jd=2,fd=0,kd=1,nd=2,ed={SI1978:kd,VT100:nd},od=96,qd=64,rd=32,sd=0,ud=127,wd=15,xd=16,vd=96,yd=8192,zd=16384; k.Ha=function(){var a=!1;if(this.a){if(this.a.Ha){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.A/this.s;b>c&&(a=Math.round(c/b*100)+"%")}this.Ea?(this.o.style.width=a,this.o.style.width=a,this.o.style.display="block",this.o.style.margin="auto"):(this.a.style.width=a,this.a.style.height="auto");this.a.style.backgroundColor="black";this.a.Ha();a=!0}this.L&&this.L.focus()}return a};
Ha(function(){for(var a=y(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= function jd(a,b){!b&&a.a&&(a.Ea?a.o.style.width=a.o.style.height="":a.a.style.width=a.a.style.height="")}function ld(a,b){a.Ma=b;a.N=!1;if(void 0===a.g||a.g.length!=a.Ma)a.g=Array(a.Ma)}function wd(a,b,c,d,e){d=a.b?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.P==nd&&(208<=c&&236>c?e=a.O+od:28<=c&&72>c&&(e=a.O+pd));a=a.I[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ea("aspect"));f&&.3<=f&&3.33>=f&&(Ga("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Da("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new dd(d,e,g,f,c);ja(d,c)}}); function Pb(a,b){var c=!0;if(!b){a.ha&&(120==a.ha?a.Oa&1?(mc(a.m,2),c=!1):mc(a.m,1):mc(a.m,4));if(c&&a.N&&a.v){for(var d=a.u,e=a.v,f=!0,g=a.da>>>d.b;0<e&&g<d.a.length;)d.a[g].ja&&(d.a[g].ja=f=!1,d.a[g].Zb=!0),e-=d.c,g++;f&&(c=!1)}Lb(a.m,a.Qa,1E3/Math.max(a.Pa,a.ha));a.Oa++}if(c)if(1<a.M)switch(a.P){case qd:for(var c=a.da,d=-1,e=0,f=60==a.bc?2:5,h=g=0,m=-1;e<a.R;){var q=0,w=c,B=d,L=a.C;for(B!=rd&&(L>>=1);;){var y=cb(a.u,w++);if((y&xd)==xd){var v=cb(a.u,w++),d=v&yd,c=(v&zd)<<8|cb(a.u,w),c=c+(v&Ad?Bd:
function Ad(a){q.call(this,"SerialPort",a);this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.O=2;break;default:u("Unrecognized serial adapter #"+this.H);return}this.b=this.c=null;this.L=a.tabSize;this.F=a.charBOL;this.f=0;this.B=!1;this.l=!0;var b=a.binding;if("console"==b)this.c="";else{var c;a=Bd;b&&(void 0===c&&(c="Panel"),(c=ia(c,this.id))&&(b=c.w[b])&&this.S(null,a,b))}this.g="";this.a=this.Ba=this.s=null;this.exports={connect:this.Fb,receiveData:this.mb,receiveStatus:this.yd}}m(Ad,q); Cd);break}if(q<L)a.X[q++]=y;else break}if(f)f--;else{for(;q<a.X.length;)a.X[q++]=0;if(0<=B)for(w=a.N&&a.g[g]==L,a.g[g++]=L,L=0;L<q;L++){y=a.X[L];if(!w||y!==a.g[g]){a.g[m=g]=y;var v=a,F=a.ma,U=y&127;if(y=v.H[B][y&128?1:0]){var Z=(U&15)*y.M,U=(U>>4)*y.K,da,wa,Va,mb,Zc=y.M,Yb=y.K;F?(da=L*v.M,wa=e*v.K,Va=v.M,mb=v.K):(da=L*v.wa,wa=e*v.xa,Va=v.wa,mb=v.xa);y.M>v.M&&(da*=2,Va*=2);y.K>v.K&&(B==vd&&(U+=v.K),Yb=v.K);F?F.drawImage(y.canvas,Z,U,Zc,Yb,da,wa,Va,mb):(da+=0,wa+=0,v.c.drawImage(y.canvas,Z,U,Zc,Yb,
k=Ad.prototype; da,wa,Va,mb))}h++}g++}e++}}a.N=!0;!b&&a.na&&1==h&&(a.g[m]=-1,h=0);a.na=!1;(h||b)&&a.ma&&a.c.drawImage(a.l,0,a.la,a.j,a.B-a.K,0,0,a.mb,a.jc)}else{e=a.da;f=e+a.v;m=h=g=0;b=a.j;q=0;c=a.B;B=d=0;w=a.ea;L=(1<<w)-1;a.Sc&&(w=-w,B=16+w);for(;e<f;){v=a.u;F=e;y=F&v.f;Z=(F&v.g)>>>v.b;v=y!=v.f?v.a[Z].ec(y,F):v.a[Z++].hb(y,F)|v.a[Z&v.o].hb(0,F+1)<<8;if(a.N&&v===a.g[g])h+=a.Na;else{a.g[g]=v;(F=B)&&(v=v>>8|(v&255)<<8);h<b&&(b=h);for(y=a.Na;y--;)Z=v>>F&L,wd(a,a.Ga,h++,m,Z),F+=w;h>q&&(q=h);m<c&&(c=m);m>=d&&(d=m+1)}e+=
k.S=function(a,b,c,d){var e=this;switch(b){case Bd:return this.w[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Cd(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Cd(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.w[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.mb(d);return!0}, 2;g++;if(h>=a.j&&(h=0,m++,m>a.B))break}a.N=!0;b<a.j&&(e=q-b,d-=c,a.b&&(f=b,g=e,b=c,e=d,c=a.j-(f+g),d=g),a.ma.putImageData(a.Ga,0,0,b,c,e,d),a.c.drawImage(a.l,0,0,a.l.width,a.l.height,0,0,a.A,a.s))}}var od=0,pd=1,md=2,id=0,nd=1,qd=2,hd={SI1978:nd,VT100:qd},rd=96,td=64,ud=32,vd=0,xd=127,zd=15,Ad=16,yd=96,Bd=8192,Cd=16384;
!0}return!1};k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;var e=this;this.P=Ib(this.m,function(){e.mb()});this.R=Ib(this.m,function(){Mc(e)});this.N=C(a,"ChipSet");fb(b,this,Dd,this.I);gb(b,this,Ed,this.I);z(this)}; Ia(function(){for(var a=x(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=u(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
k.Fb=function(a){if(!this.a){var b=yb(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ua(c[0]);if(d!=this.Wa)return;c=ua(c[1]);if(this.a=ha(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.l);if(this.Ba=e.receiveData){this.l=a;this.s=e.receiveStatus;this.status("Connected "+this.Ia+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}}; (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Fa("aspect"));f&&.3<=f&&3.33>=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ea("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new gd(d,e,g,f,c);ka(d,c)}});
k.ca=function(a,b){if(!b)if(this.Fb(this.l),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){Fd(this)};k.save=function(){var a=new G(this),b=0,c=[];c[b++]=this.o;c[b++]=this.A;c[b++]=this.C;c[b++]=this.T;c[b++]=this.h;c[b++]=this.j;c[b]=this.v;a.set(0,c);return a.data()};k.restore=function(a){return Fd(this,a[0])}; function Dd(a){p.call(this,"SerialPort",a);this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.O=2;break;default:t("Unrecognized serial adapter #"+this.H);return}this.b=this.c=null;this.L=a.tabSize;this.F=a.charBOL;this.f=0;this.B=!1;this.l=!0;var b=a.binding;if("console"==b)this.c="";else{var c;a=Ed;b&&(void 0===c&&(c="Panel"),(c=ja(c,this.id))&&(b=c.w[b])&&this.S(null,a,b))}this.g="";this.a=this.Ba=this.s=null;this.exports={connect:this.ac,receiveData:this.pb,receiveStatus:this.Jd}}l(Dd,p);
function Fd(a,b){var c=0;b||(b=Gd);a.o=b[c++];a.A=b[c++];a.C=b[c++];a.T=b[c++];a.h=b[c++];a.j=b[c++];a.v=b[c];return!0}function Hd(a,b){var c=a.v&b;b&15||(c>>=4);b=Id[c];c=((a.h&Jd)>>2)+6;a.h&Kd&&c++;c+=((a.h&Ld)>>6)+1>>1;return 1E3/Math.round(b/c)}function Cd(a,b){return a.B||a.T&Md?!1:(a.A=b,a.T|=Md,kc(a.m,a.O),!0)} k=Dd.prototype;
k.mb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Cd(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.m&&Jb(this.m,this.P,Hd(this,Nd)));return!0};k.yd=function(a){this.T&=~Od;a&64&&(this.T|=Od)};function Mc(a,b){a.T=a.T|rc|Pd;b&&a.Ba&&a.Ba.call(a.a,b)}k.Vc=function(){var a=this.A;this.T&=~Md;return a};k.Uc=function(){return this.T}; k.S=function(a,b,c,d){var e=this;switch(b){case Ed:return this.w[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Fd(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Fd(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.w[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.pb(d);return!0},
k.dd=function(a,b){this.C=b;this.T&=~(rc|Pd);if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Ba&&this.Ba.call(this.a,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{var c;13!=b&&10!=b&&(c=va[b]);a=c=c?"<"+c+">":String.fromCharCode(b);c=a.length;9==b?(b=this.L||8,c=b-this.f%b,this.L&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.F&&!this.f&&c&&(a=String.fromCharCode(this.F)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight; !0}return!1};k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;var e=this;this.P=Kb(this.m,function(){e.pb()});this.R=Kb(this.m,function(){Pc(e)});this.N=Ta(a,"ChipSet");hb(b,this,Gd,this.I);ib(b,this,Hd,this.I);z(this)};
this.f+=c}else if(null!=this.c){if(10==b||1024<=this.c.length)this.aa(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.m&&Jb(this.m,this.R,Hd(this,Qd))};k.cd=function(a,b){this.o?(this.s&&(b^this.j)&(Rd|Sd)&&(a=0,this.l?(a|=b&Rd?32:0,a|=b&Sd?320:0):(a|=b&Rd?16:0,a|=b&Sd?1048576:0),this.s.call(this.a,a)),this.j=b,this.j&Td&&(this.o=!1)):(this.h=b,this.o=!0)};k.bd=function(a,b){this.v=b}; k.ac=function(a){if(!this.a){var b=Ab(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ua(c[0]);if(d!=this.Ya)return;c=ua(c[1]);if(this.a=ia(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.l);if(this.Ba=e.receiveData){this.l=a;this.s=e.receiveStatus;this.status("Connected "+this.Ka+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
var Jd=12,Kd=16,Ld=192,Sd=2,Rd=32,Td=64,rc=1,Md=2,Pd=4,Od=128,Nd=15,Qd=240,Id=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Gd=[!1,0,0,133,142,39,238],Bd="buffer",Dd={0:Ad.prototype.Vc,1:Ad.prototype.Uc},Ed={0:Ad.prototype.dd,1:Ad.prototype.cd,2:Ad.prototype.bd};Ha(function(){for(var a=y(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ad(d);ja(d,c)}}); k.ca=function(a,b){if(!b)if(this.ac(this.l),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){Id(this)};k.save=function(){var a=new E(this),b=0,c=[];c[b++]=this.o;c[b++]=this.A;c[b++]=this.C;c[b++]=this.T;c[b++]=this.h;c[b++]=this.j;c[b]=this.v;a.set(0,c);return a.data()};k.restore=function(a){return Id(this,a[0])};
function Ud(a,b,c){q.call(this,"Computer",a);this.i.U=!1;Vd(this,b);this.v=yb(this,"autoPower",a);this.c=0;this.H=a.busWidth||a.buswidth;this.a=Wd;this.o=null;this.j=this.C=!1;this.I=yb(this,"url")||"";(Math.random()+.1).toString(36);this.b=Xd(this);if(this.m=ia("CPU",this.id)){this.J=ia("Debugger",this.id);this.g=[];for(b=null;b=C(this,"Video",b);)this.g.push(b);this.u=new Ua({id:this.Ia+".bus",busWidth:this.H},this.m,this.J);var d,e=ga(this.id);if((this.h=ia("Panel",this.id))&&this.h.pa)for(b=0;b< function Id(a,b){var c=0;b||(b=Jd);a.o=b[c++];a.A=b[c++];a.C=b[c++];a.T=b[c++];a.h=b[c++];a.j=b[c++];a.v=b[c];return!0}function Kd(a,b){var c=a.v&b;b&15||(c>>=4);b=Ld[c];c=((a.h&Md)>>2)+6;a.h&Nd&&c++;c+=((a.h&Od)>>6)+1>>1;return 1E3/Math.round(b/c)}function Fd(a,b){return a.B||a.T&Pd?!1:(a.A=b,a.T|=Pd,mc(a.m,a.O),!0)}
e.length;b++)d=e[b],d.G=this.h.G,d.aa=this.h.aa,d.pa=this.h.pa;this.aa("PC8080 v1.32.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.qa&&d.qa(this,this.u,this.m,this.J);b=null;d=yb(this,"resume",a);void 0!==d&&(1<d.length?b=this.l=d:this.a=parseInt(d,10));var f;if(a=yb(this,"state")||(f=!0,a.state))b=this.A=a,f||(this.j=!0,this.a=Wd),this.a&&(this.s=new G(this,"1.32.2"),Yd(this.s)?b=null: k.pb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Fd(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.m&&Lb(this.m,this.P,Kd(this,Qd)));return!0};k.Jd=function(a){this.T&=~Rd;a&64&&(this.T|=Rd)};function Pc(a,b){a.T=a.T|tc|Sd;b&&a.Ba&&a.Ba.call(a.a,b)}k.bd=function(){var a=this.A;this.T&=~Pd;return a};k.ad=function(){return this.T};
delete this.s);!b&&this.a&&(b=Zd(this))&&(this.j=!0);if(b){var g=this;xa(b,null,!0,function(a,b,c){c?(g.l=null,g.j=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+ua(b):"")+")")):(g.o=b,g.C=!0);z(g)})}else z(this);this.w.power||(this.v=!0);!c&&this.v&&$d(this,this.Ra)}else u("Unable to find CPU component")}m(Ud,q);function Vd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.F=b} k.pd=function(a,b){this.C=b;this.T&=~(tc|Sd);if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Ba&&this.Ba.call(this.a,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{var c;13!=b&&10!=b&&(c=va[b]);a=c=c?"<"+c+">":String.fromCharCode(b);c=a.length;9==b?(b=this.L||8,c=b-this.f%b,this.L&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.F&&!this.f&&c&&(a=String.fromCharCode(this.F)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;
function yb(a,b,c){var d=b.toLowerCase(),d=Ea(b)||Ea(d);void 0===d&&a.F&&(d=a.F[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function $d(a,b,c){for(var d=ga(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ka(f)){ka(f,function(){$d(a,b,c)});return}}b.call(a,c)} this.f+=c}else if(null!=this.c){if(10==b||1024<=this.c.length)this.aa(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.m&&Lb(this.m,this.R,Kd(this,Td))};k.od=function(a,b){this.o?(this.s&&(b^this.j)&(Ud|Vd)&&(a=0,this.l?(a|=b&Ud?32:0,a|=b&Vd?320:0):(a|=b&Ud?16:0,a|=b&Vd?1048576:0),this.s.call(this.a,a)),this.j=b,this.j&Wd&&(this.o=!1)):(this.h=b,this.o=!0)};k.nd=function(a,b){this.v=b};
function ae(a,b){var c=new G(a,"1.32.2",be);if(Yd(c)&&ce(c)){var d=c.get(de),e=b?b.get(de):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Ud.prototype; var Md=12,Nd=16,Od=192,Vd=2,Ud=32,Wd=64,tc=1,Pd=2,Sd=4,Rd=128,Qd=15,Td=240,Ld=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Jd=[!1,0,0,133,142,39,238],Ed="buffer",Gd={0:Dd.prototype.bd,1:Dd.prototype.ad},Hd={0:Dd.prototype.pd,1:Dd.prototype.od,2:Dd.prototype.nd};Ia(function(){for(var a=x(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Dd(d);ka(d,c)}});
k.Ra=function(a){void 0===a&&(a=this.a||(this.o?ee:Wd));if(!this.c){this.c++;var b=!1,c=!1;this.B=!1;var d=this.s||new G(this,"1.32.2");if(a==fe)b=!0;else if(a>Wd){if(Yd(d,this.o)){this.f=new G(this,"1.32.2",ge);Yd(this.f)&&(he(this,d),a=ie,je(this.f));this.f.set(de,wa());ke(this.f);var e=this.a&&!this.j;if(a==ee||fa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ce(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Yd(d,g):("error"==f&&"no machine state"!= function Xd(a,b,c){p.call(this,"Computer",a);this.i.U=!1;Yd(this,b);this.v=Ab(this,"autoPower",a);this.c=0;this.H=a.busWidth||a.buswidth;this.a=Zd;this.o=null;this.j=this.C=!1;this.I=Ab(this,"url")||"";(Math.random()+.1).toString(36);this.b=$d(this);if(this.m=ja("CPU",this.id)){this.J=ja("Debugger",this.id);this.g=[];for(b=null;b=Ta(this,"Video",b);)this.g.push(b);this.u=new Wa({id:this.Ka+".bus",busWidth:this.H},this.m,this.J);var d,e=ha(this.id);if((this.h=ja("Panel",this.id))&&this.h.pa)for(b=
g?(this.G("Error: "+g),"unable to verify user"==g&&(Ca(le,""),this.b=null)):this.aa(f+": "+g),je(d),Yd(d)?(c=ce(d),e=!0):c=!1))}e&&ae(this,c?d:null)}else a==ie&&d.clear()}else ae(this);delete this.o;delete this.s}e=ga(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.m&&(c=me(this,g,d,b,c));b=[d,a,c];a!=fe?$d(this,this.Cb,b):this.Cb(b)}}; 0;b<e.length;b++)d=e[b],d.G=this.h.G,d.aa=this.h.aa,d.pa=this.h.pa;this.aa("PC8080 v1.32.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.qa&&d.qa(this,this.u,this.m,this.J);b=null;d=Ab(this,"resume",a);void 0!==d&&(1<d.length?b=this.l=d:this.a=parseInt(d,10));var f;if(a=Ab(this,"state")||(f=!0,a.state))b=this.A=a,f||(this.j=!0,this.a=Zd),this.a&&(this.s=new E(this,"1.32.2"),ae(this.s)?
function me(a,b,c,d,e){if(!b.i.U){b.i.U=!0;if(b.ca){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ca(f,d)&&f&&(u("Unable to restore state for "+b.type),a.A&&!a.C?(c.clear(),a.a=Wd,window&&window.location.reload()):a.B=!0,b.ca(null),e=!1)}if(!d&&b.Ab)for(a=b.Ab.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} b=null:delete this.s);!b&&this.a&&(b=be(this))&&(this.j=!0);if(b){var g=this;ya(b,null,!0,function(a,b,c){c?(g.l=null,g.j=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+ua(b):"")+")")):(g.o=b,g.C=!0);z(g)})}else z(this);this.w.power||(this.v=!0);!c&&this.v&&ce(this,this.Ta)}else t("Unable to find CPU component")}l(Xd,p);function Yd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.F=b}
k.Cb=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.i.U=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.m&&(me(this,this.m,b,c,a),this.m.Qa());this.B&&(he(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.c=0}; function Ab(a,b,c){var d=b.toLowerCase(),d=Fa(b)||Fa(d);void 0===d&&a.F&&(d=a.F[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ce(a,b,c){for(var d=ha(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!la(f)){la(f,function(){ce(a,b,c)});return}}b.call(a,c)}
function he(a,b){if(fa("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.b||"";b=b.toString();var d={app:"PC8080",ver:"1.32.2"};d.url=a.I;d.user=c;d.type="bug";d.data=b;xa("http://www.pcjs.org/api/v1/report",d,!0)}} function de(a,b){var c=new E(a,"1.32.2",ee);if(ae(c)&&fe(c)){var d=c.get(ge),e=b?b.get(ge):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Xd.prototype;
function ne(a,b,c){var d,e="none";if(a.c)return null;a.c--;var f=new G(a,"1.32.2"),g=new G(a,"1.32.2",be),h=wa();g.set(de,h);f.set(de,h);f.set(oe,"1.32.2");f.set(pe,window?window.location.href:null);f.set(qe,window?window.navigator.userAgent:"");a.m&&a.m.ba&&(c&&Cb(a.m),d=a.m.ba(b,c),"object"===typeof d&&f.set(a.m.id,d),c&&(a.m.i.U=!1,!1===d&&(e=null)));for(var h=ga(a.id),l=0;l<h.length;l++){var n=h[l];n.i.U&&(n.ba&&(d=n.ba(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.i.U=!1,!1===d&&(e=null)))}e&& k.Ta=function(a){void 0===a&&(a=this.a||(this.o?he:Zd));if(!this.c){this.c++;var b=!1,c=!1;this.B=!1;var d=this.s||new E(this,"1.32.2");if(a==ie)b=!0;else if(a>Zd){if(ae(d,this.o)){this.f=new E(this,"1.32.2",je);ae(this.f)&&(ke(this,d),a=le,me(this.f));this.f.set(ge,xa());ne(this.f);var e=this.a&&!this.j;if(a==he||ga("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=fe(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ae(d,g):("error"==f&&"no machine state"!=
(c?(h=d=!1,b?(a.b&&re(a,a.b,f.toString()),ke(g)&&ke(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==se),d&&f.clear(h)):e=f.toString());c&&(a.i.U=!1,b=a.w.power)&&(b.textContent="Power");a.c=0;return e}k.reset=function(){this.u&&this.u.reset&&this.u.reset();for(var a=ga(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&c.reset()}};k.start=function(a,b){for(var c=ga(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}}; g?(this.G("Error: "+g),"unable to verify user"==g&&(Da(oe,""),this.b=null)):this.aa(f+": "+g),me(d),ae(d)?(c=fe(d),e=!0):c=!1))}e&&de(this,c?d:null)}else a==le&&d.clear()}else de(this);delete this.o;delete this.s}e=ha(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.m&&(c=pe(this,g,d,b,c));b=[d,a,c];a!=ie?ce(this,this.Yb,b):this.Yb(b)}};
k.stop=function(a,b){for(var c=ga(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; function pe(a,b,c,d,e){if(!b.i.U){b.i.U=!0;if(b.ca){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ca(f,d)&&f&&(t("Unable to restore state for "+b.type),a.A&&!a.C?(c.clear(),a.a=Zd,window&&window.location.reload()):a.B=!0,b.ca(null),e=!1)}if(!d&&b.Tb)for(a=b.Tb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.S=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.c||(d.i.U?ne(d,!1,!0):$d(d,d.Ra))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.i.U&&!d.c)if(d.a&&!d.l){var a=fa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ne(d,a,!0);!a&&d.A?window&&window.location.reload():d.Ra(Wd)}else d.reset(),d.m&&d.m.Qa()},!0;case "save":if(pa())c.parentNode.removeChild(c);else return this.w[b]= k.Yb=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.i.U=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.m&&(pe(this,this.m,b,c,a),this.m.Sa());this.B&&(ke(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.c=0};
c,c.onclick=function(){var a=Xd(d,!0);if(a){var b=!!(d.a&&!d.l||d.A),c=ne(d,b);b?re(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function Xd(a,b){var c=a.b;c||((c=Ba(le),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=te(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c} function ke(a,b){if(ga("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.b||"";b=b.toString();var d={app:"PC8080",ver:"1.32.2"};d.url=a.I;d.user=c;d.type="bug";d.data=b;ya("http://www.pcjs.org/api/v1/report",d,!0)}}
function te(a,b){a.b=null;b=xa(qa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ca(le,b.data),a.b=b.data)}catch(d){u(d.message+" ("+c+")")}return a.b}function Zd(a){var b=null;a.b&&(b=qa()+"/api/v1/user?req=load&user="+a.b+"&state="+ue(a,"1.32.2"));return b} function qe(a,b,c){var d,e="none";if(a.c)return null;a.c--;var f=new E(a,"1.32.2"),g=new E(a,"1.32.2",ee),h=xa();g.set(ge,h);f.set(ge,h);f.set(re,"1.32.2");f.set(se,window?window.location.href:null);f.set(te,window?window.navigator.userAgent:"");a.m&&a.m.ba&&(c&&Eb(a.m),d=a.m.ba(b,c),"object"===typeof d&&f.set(a.m.id,d),c&&(a.m.i.U=!1,!1===d&&(e=null)));for(var h=ha(a.id),m=0;m<h.length;m++){var q=h[m];q.i.U&&(q.ba&&(d=q.ba(b,c),"object"===typeof d&&f.set(q.id,d)),c&&(q.i.U=!1,!1===d&&(e=null)))}e&&
function re(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ue(a,"1.32.2");d.data=c;b=xa(qa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.G("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.G(c),Ca(le,""),a.b=null)}} (c?(h=d=!1,b?(a.b&&ue(a,a.b,f.toString()),ne(g)&&ne(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==ve),d&&f.clear(h)):e=f.toString());c&&(a.i.U=!1,b=a.w.power)&&(b.textContent="Power");a.c=0;return e}k.reset=function(){this.u&&this.u.reset&&this.u.reset();for(var a=ha(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&c.reset()}};k.start=function(a,b){for(var c=ha(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
function C(a,b,c){a=ga(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Hb(a,b){if(a.g.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.g[0];a.L&&a.L.focus();!b&&window&&window.scrollTo(c,d)}} k.stop=function(a,b){for(var c=ha(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
function Lb(a,b){a.m&&(a=a.m,a.Ma&&(b||!a.i.ka||a.i.Bb)&&(S(a,"A",a.b),S(a,"B",a.g),S(a,"C",a.c),S(a,"BC",Vb(a),4),S(a,"D",a.h),S(a,"E",a.f),S(a,"DE",Yb(a),4),S(a,"H",a.j),S(a,"L",a.l),S(a,"HL",H(a),4),S(a,"SP",a.A,4),S(a,"PC",a.s,4),b=Ub(a),S(a,"PS",b,4),S(a,"IF",b&512?1:0,1),S(a,"SF",b&128?1:0,1),S(a,"ZF",b&64?1:0,1),S(a,"AF",b&16?1:0,1),S(a,"PF",b&4?1:0,1),S(a,"CF",b&1?1:0,1)),b=a.w.speed)&&(b.textContent=a.i.ka&&a.R?a.R.toFixed(2)+"Mhz":"Stopped")} k.S=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.c||(d.i.U?qe(d,!1,!0):ce(d,d.Ta))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.i.U&&!d.c)if(d.a&&!d.l){var a=ga("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");qe(d,a,!0);!a&&d.A?window&&window.location.reload():d.Ta(Zd)}else d.reset(),d.m&&d.m.Sa()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.w[b]=
var ge="failsafe",be="validate",de="timestamp",oe="version",pe="url",qe="browser",le="user",fe=-1,Wd=0,ee=1,ie=2,se=3;Ha(function(){for(var a=y(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=w(f),g=new Ud(g,d,!0);ja(g,f);g.v&&$d(g,g.Ra)}});Ia.show.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=ia("Computer",c.id))&&c.N&&!c.i.U&&c.Ra(fe)}}); c,c.onclick=function(){var a=$d(d,!0);if(a){var b=!!(d.a&&!d.l||d.A),c=qe(d,b);b?ue(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function $d(a,b){var c=a.b;c||((c=Ca(oe),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=we(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
Ia.exit.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=ia("Computer",c.id))&&c.i.U&&ne(c,!(!c.a||c.l),!0)}});function G(a,b,c){this.id=a.id;this.J=a.J;this.b="";this.a={};this.m=this.u=!1;this.key=ue(a,b,c);je(this,a.Rc)}k=G.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a}; function we(a,b){a.b=null;b=ya(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Da(oe,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function be(a){var b=null;a.b&&(b=ra()+"/api/v1/user?req=load&user="+a.b+"&state="+xe(a,"1.32.2"));return b}
function Yd(a,b){return b?(a.b=b,a.m=!0,a.u=!1,!0):a.m?!0:za()&&(b=Ba(a.key))?(a.b=b,a.m=!0):!1}function ce(a){var b=!0;if(!a.u)try{a.a=JSON.parse(a.b),a.u=!0}catch(c){u(c.message||c),b=!1}return b}function ke(a){var b=!0;if(za()){var c=JSON.stringify(a.a);Ca(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.b};function je(a,b){a.b="";a.a={};a.m=a.u=!1;b&&a.set("parms",b)} function ue(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=xe(a,"1.32.2");d.data=c;b=ya(ra()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.G("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.G(c),Da(oe,""),a.b=null)}}
k.clear=function(a){je(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function ue(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var ve=0; function Ta(a,b,c){a=ha(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Jb(a,b){if(a.g.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.g[0];a.L&&a.L.focus();!b&&window&&window.scrollTo(c,d)}}
function we(a,b,c,d,e,f){e("Loading "+a+"...");xa(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):xe(h,a,b,c,d,e,f)})} function Nb(a,b){a.m&&(a=a.m,a.Oa&&(b||!a.i.ka||a.i.Xb)&&(R(a,"A",a.b),R(a,"B",a.g),R(a,"C",a.c),R(a,"BC",Xb(a),4),R(a,"D",a.h),R(a,"E",a.f),R(a,"DE",$b(a),4),R(a,"H",a.j),R(a,"L",a.l),R(a,"HL",G(a),4),R(a,"SP",a.A,4),R(a,"PC",a.s,4),b=Wb(a),R(a,"PS",b,4),R(a,"IF",b&512?1:0,1),R(a,"SF",b&128?1:0,1),R(a,"ZF",b&64?1:0,1),R(a,"AF",b&16?1:0,1),R(a,"PF",b&4?1:0,1),R(a,"CF",b&1?1:0,1)),b=a.w.speed)&&(b.textContent=a.i.ka&&a.R?a.R.toFixed(2)+"Mhz":"Stopped")}
function xe(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(aa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"), var je="failsafe",ee="validate",ge="timestamp",re="version",se="url",te="browser",oe="user",ie=-1,Zd=0,he=1,le=2,ve=3;Ia(function(){for(var a=x(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=x(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new Xd(g,d,!0);ka(g,f);g.v&&ce(g,g.Ta)}});Ja.show.push(function(){for(var a=x(document,"pc8080","computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=ja("Computer",c.id))&&c.N&&!c.i.U&&c.Ta(ie)}});
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(v){f=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?ye(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""), Ja.exit.push(function(){for(var a=x(document,"pc8080","computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=ja("Computer",c.id))&&c.i.U&&qe(c,!(!c.a||c.l),!0)}});function E(a,b,c){this.id=a.id;this.J=a.J;this.b="";this.a={};this.m=this.u=!1;this.key=xe(a,b,c);me(this,a.Uc)}k=E.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};
function ae(a,b){return b?(a.b=b,a.m=!0,a.u=!1,!0):a.m?!0:Aa()&&(b=Ca(a.key))?(a.b=b,a.m=!0):!1}function fe(a){var b=!0;if(!a.u)try{a.a=JSON.parse(a.b),a.u=!0}catch(c){t(c.message||c),b=!1}return b}function ne(a){var b=!0;if(Aa()){var c=JSON.stringify(a.a);Da(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.b};function me(a,b){a.b="";a.a={};a.m=a.u=!1;b&&a.set("parms",b)}
k.clear=function(a){me(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function xe(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var ye=0;
function ze(a,b,c,d,e,f){e("Loading "+a+"...");ya(a,null,!0,function(g,h,m){m?(h||(h="unable to load "+a+" ("+m+")"),f(h,null)):Ae(h,a,b,c,d,e,f)})}
function Ae(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ba(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){f=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Be(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
null)} null)}
function ye(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");xa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,v=/( [a-z]+=)(['"])(.*?)\2/g;n=v.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,""); function Be(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ya(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=h[0],q,w=/( [a-z]+=)(['"])(.*?)\2/g;q=w.exec(f);)m=0>m.indexOf(q[1])?m.replace(">",q[0]+">"):m.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);ye(a,b,c)}})}else c(a,null)} a=a.replace(d[0],g);Be(a,b,c)}})}else c(a,null)}
function ze(a,b,c,d){function e(a){if(void 0===h){var b=g&&y(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ra(a))}function f(a){e("Error: "+a);l&&(--ve||La(!0));l=!1}var g,h,l=!0;ve++;ba[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],A=document.createElement("style");A.type="text/css";A.styleSheet?A.styleSheet.cssText=n:A.appendChild(document.createTextNode(n));v.appendChild(A)}c|| function Ce(a,b,c,d){function e(a){if(void 0===h){var b=g&&x(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=sa(a))}function f(a){e("Error: "+a);m&&(--ye||Ma(!0));m=!1}var g,h,m=!0;ye++;ca[a]={};try{if(g=document.getElementById(a)){var q;if("object"==typeof resources&&(q=resources.css)){var w=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=q:B.appendChild(document.createTextNode(q));w.appendChild(B)}c||
(c="/versions/pc8080/1.32.2/components.xsl");n=function(d,h){h?we(c,null,null,!1,e,function(d,l){l?(aa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--ve||La(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--ve||La(!0)):f("invalid machine element: "+ (c="/versions/pc8080/1.32.2/components.xsl");q=function(d,h){h?ze(c,null,null,!1,e,function(d,m){m?(ba(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--ye||Ma(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--ye||Ma(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?we(b,a,d,!0,e,n):xe(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(K){f(K.message)}return l}window.embedPC8080=function(a,b,c,d){La(!1);return ze(a,b,c,d)};window.findMachineComponent=function(a,b){return ia(b,a+".machine")};window.enableEvents=La;window.sendEvent=Na;})(); a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ze(b,a,d,!0,e,q):Ae(b,null,a,d,!1,e,q)}else f("missing machine element: "+a)}catch(L){f(L.message)}return m}window.embedPC8080=function(a,b,c,d){Ma(!1);return Ce(a,b,c,d)};window.findMachineComponent=function(a,b){return ja(b,a+".machine")};window.enableEvents=Ma;window.sendEvent=Oa;})();

View file

@ -45,7 +45,7 @@
*/ */
var l,aa,ba={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},p={vo:0,xo:1,yo:2,dl:3,zo:4,Ao:5,Bo:6,Co:7,Do:8,Eo:9,Fo:10,Go:11,Ho:12,Io:13,Jo:14,Ko:15,Lo:16,Mo:17,No:18,Oo:19,Po:20,Qo:21,Ro:22,So:23,To:24,Uo:25,Vo:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41, var l,aa,ba={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},p={vo:0,xo:1,yo:2,dl:3,zo:4,Ao:5,Bo:6,Co:7,Do:8,Eo:9,Fo:10,Go:11,Ho:12,Io:13,Jo:14,Ko:15,Lo:16,Mo:17,No:18,Oo:19,Po:20,Qo:21,Ro:22,So:23,To:24,Uo:25,Vo:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,
"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ue:65,Bi:66,Ci:67,Di:68,E:69,Ei:70,Fi:71,Gi:72,Hi:73,Ii:74,Ji:75,Ki:76,Li:77,Mi:78,Ni:79,Oi:80,Q:81,Pi:82,Qi:83,Ri:84,Si:85,Ti:86,Ui:87,Vi:88,Wi:89,og:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ve:97,ql:98,sl:99,d:100,e:101,Cl:102,Dl:103,El:104,Fl:105,Vm:106,k:107,Wm:108,$m:109,n:110,gn:111,p:112,q:113,r:114,no:115,t:116,qo:117,ro:118,so:119,x:120,y:121,z:122, "*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ue:65,Bi:66,Ci:67,Di:68,E:69,Ei:70,Fi:71,Gi:72,Hi:73,Ii:74,Ji:75,Ki:76,Li:77,Mi:78,Ni:79,Oi:80,Q:81,Pi:82,Qi:83,Ri:84,Si:85,Ti:86,Ui:87,Vi:88,Wi:89,og:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ve:97,ql:98,sl:99,d:100,e:101,Cl:102,Dl:103,El:104,Fl:105,Vm:106,k:107,Wm:108,$m:109,n:110,gn:111,p:112,q:113,r:114,no:115,t:116,qo:117,ro:118,so:119,x:120,y:121,z:122,
"{":123,"|":124,"}":125,"~":126,Wo:127},ca={};ca[186]=p[";"];ca[187]=p["="];ca[188]=p[","];ca[189]=p["-"];ca[190]=p["."];ca[191]=p["/"];ca[192]=p["`"];ca[219]=p["["];ca[220]=p["\\"];ca[221]=p["]"];ca[222]=p["'"];ca[173]=p["-"];var da={};da[p["1"]]=p["!"];da[p["2"]]=p["@"];da[p["3"]]=p["#"];da[p["4"]]=p.$;da[p["5"]]=p["%"];da[p["6"]]=p["^"];da[p["7"]]=p["&"];da[p["8"]]=p["*"];da[p["9"]]=p["("];da[p["0"]]=p[")"];da[186]=p[":"];da[187]=p["+"];da[188]=p["<"];da[189]=p._;da[190]=p[">"];da[191]=p["?"]; "{":123,"|":124,"}":125,"~":126,Wo:127},ca={};ca[173]=p["-"];ca[186]=p[";"];ca[187]=p["="];ca[189]=p["-"];ca[188]=p[","];ca[190]=p["."];ca[191]=p["/"];ca[192]=p["`"];ca[219]=p["["];ca[220]=p["\\"];ca[221]=p["]"];ca[222]=p["'"];var da={};da[p["1"]]=p["!"];da[p["2"]]=p["@"];da[p["3"]]=p["#"];da[p["4"]]=p.$;da[p["5"]]=p["%"];da[p["6"]]=p["^"];da[p["7"]]=p["&"];da[p["8"]]=p["*"];da[p["9"]]=p["("];da[p["0"]]=p[")"];da[186]=p[":"];da[187]=p["+"];da[188]=p["<"];da[189]=p._;da[190]=p[">"];da[191]=p["?"];
da[192]=p["~"];da[219]=p["{"];da[220]=p["|"];da[221]=p["}"];da[222]=p['"'];da[173]=p._;da[61]=p["+"];da[59]=p[":"]; da[192]=p["~"];da[219]=p["{"];da[220]=p["|"];da[221]=p["}"];da[222]=p['"'];da[173]=p._;da[61]=p["+"];da[59]=p[":"];
function ea(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&& function ea(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function fa(a,b){var c,d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function ha(a,b,c){var d="";if(!b||4<b)b=4;for(var e=0;e<b;e++)d&&(d=","+d),d=fa(a&255,8)+d,a>>=8;return(c?"0b":"")+d} d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function fa(a,b){var c,d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function ha(a,b,c){var d="";if(!b||4<b)b=4;for(var e=0;e<b;e++)d&&(d=","+d),d=fa(a&255,8)+d,a>>=8;return(c?"0b":"")+d}

View file

@ -45,7 +45,7 @@
*/ */
var l,ba,ca={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},n={Um:0,Wm:1,Xm:2,Sj:3,Ym:4,Zm:5,$m:6,an:7,bn:8,cn:9,dn:10,en:11,fn:12,gn:13,hn:14,jn:15,kn:16,ln:17,mn:18,nn:19,on:20,pn:21,qn:22,rn:23,sn:24,tn:25,un:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41, var l,ba,ca={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},n={Um:0,Wm:1,Xm:2,Sj:3,Ym:4,Zm:5,$m:6,an:7,bn:8,cn:9,dn:10,en:11,fn:12,gn:13,hn:14,jn:15,kn:16,ln:17,mn:18,nn:19,on:20,pn:21,qn:22,rn:23,sn:24,tn:25,un:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,
"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Kd:65,wh:66,xh:67,yh:68,E:69,zh:70,Ah:71,Bh:72,Ch:73,Dh:74,Eh:75,Fh:76,Gh:77,Ih:78,Kh:79,Mh:80,Q:81,Ph:82,Rh:83,Th:84,Vh:85,Xh:86,Zh:87,ai:88,ci:89,vf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Md:97,dk:98,ek:99,d:100,e:101,pk:102,qk:103,rk:104,sk:105,Dl:106,k:107,El:108,Hl:109,n:110,Ml:111,p:112,q:113,r:114,Om:115,t:116,Rm:117,Sm:118,Tm:119,x:120,y:121,z:122, "*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Kd:65,wh:66,xh:67,yh:68,E:69,zh:70,Ah:71,Bh:72,Ch:73,Dh:74,Eh:75,Fh:76,Gh:77,Ih:78,Kh:79,Mh:80,Q:81,Ph:82,Rh:83,Th:84,Vh:85,Xh:86,Zh:87,ai:88,ci:89,vf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Md:97,dk:98,ek:99,d:100,e:101,pk:102,qk:103,rk:104,sk:105,Dl:106,k:107,El:108,Hl:109,n:110,Ml:111,p:112,q:113,r:114,Om:115,t:116,Rm:117,Sm:118,Tm:119,x:120,y:121,z:122,
"{":123,"|":124,"}":125,"~":126,vn:127},da={};da[186]=n[";"];da[187]=n["="];da[188]=n[","];da[189]=n["-"];da[190]=n["."];da[191]=n["/"];da[192]=n["`"];da[219]=n["["];da[220]=n["\\"];da[221]=n["]"];da[222]=n["'"];da[173]=n["-"];var p={};p[n["1"]]=n["!"];p[n["2"]]=n["@"];p[n["3"]]=n["#"];p[n["4"]]=n.$;p[n["5"]]=n["%"];p[n["6"]]=n["^"];p[n["7"]]=n["&"];p[n["8"]]=n["*"];p[n["9"]]=n["("];p[n["0"]]=n[")"];p[186]=n[":"];p[187]=n["+"];p[188]=n["<"];p[189]=n._;p[190]=n[">"];p[191]=n["?"];p[192]=n["~"]; "{":123,"|":124,"}":125,"~":126,vn:127},da={};da[173]=n["-"];da[186]=n[";"];da[187]=n["="];da[189]=n["-"];da[188]=n[","];da[190]=n["."];da[191]=n["/"];da[192]=n["`"];da[219]=n["["];da[220]=n["\\"];da[221]=n["]"];da[222]=n["'"];var p={};p[n["1"]]=n["!"];p[n["2"]]=n["@"];p[n["3"]]=n["#"];p[n["4"]]=n.$;p[n["5"]]=n["%"];p[n["6"]]=n["^"];p[n["7"]]=n["&"];p[n["8"]]=n["*"];p[n["9"]]=n["("];p[n["0"]]=n[")"];p[186]=n[":"];p[187]=n["+"];p[188]=n["<"];p[189]=n._;p[190]=n[">"];p[191]=n["?"];p[192]=n["~"];
p[219]=n["{"];p[220]=n["|"];p[221]=n["}"];p[222]=n['"'];p[173]=n._;p[61]=n["+"];p[59]=n[":"]; p[219]=n["{"];p[220]=n["|"];p[221]=n["}"];p[222]=n['"'];p[173]=n._;p[61]=n["+"];p[59]=n[":"];
function ea(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&& function ea(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function fa(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ga(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c} d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function fa(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ga(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}