diff --git a/modules/pc8080/lib/video.js b/modules/pc8080/lib/video.js index dd52df993..27da70307 100644 --- a/modules/pc8080/lib/video.js +++ b/modules/pc8080/lib/video.js @@ -365,6 +365,12 @@ Video.prototype.initBuffers = function() * builds a contiguous screen of test data starting at the default frame buffer address (0x2000). */ this.rateMonitor = 60; + + /* + * The default character-selectable attribute (reverse video vs. underline) is controlled by fUnderline. + */ + this.fUnderline = false; + this.abLineBuffer = new Array(this.nColsBuffer); } }; @@ -480,31 +486,37 @@ Video.prototype.createFonts = function(abFontData) * We retain abFontData in case we have to rebuild the fonts (eg, when we switch from 80 to 132 columns) */ this.abFontData = abFontData; - this.aFonts[Video.VT100.FONT.NORML] = this.createFontVariation(this.cxCell, this.cyCell); - this.aFonts[Video.VT100.FONT.DWIDE] = this.createFontVariation(this.cxCell*2, this.cyCell); - this.aFonts[Video.VT100.FONT.DHIGH] = this.aFonts[Video.VT100.FONT.DHIGH_BOT] = this.createFontVariation(this.cxCell*2, this.cyCell*2); + this.aFonts[Video.VT100.FONT.NORML] = [ + this.createFontVariation(this.cxCell, this.cyCell), + this.createFontVariation(this.cxCell, this.cyCell, this.fUnderline) + ]; + this.aFonts[Video.VT100.FONT.DWIDE] = [ + this.createFontVariation(this.cxCell*2, this.cyCell), + this.createFontVariation(this.cxCell*2, this.cyCell, this.fUnderline) + ]; + this.aFonts[Video.VT100.FONT.DHIGH] = this.aFonts[Video.VT100.FONT.DHIGH_BOT] = [ + this.createFontVariation(this.cxCell*2, this.cyCell*2), + this.createFontVariation(this.cxCell*2, this.cyCell*2, this.fUnderline) + ]; }; /** - * createFontVariation(cxCell, cyCell, rgbOn, fReverse, fUnderline) + * createFontVariation(cxCell, cyCell, fUnderline) * * This creates a 16x16 character grid for the requested font variation. Variations include: * * 1) no variation (cell size is this.cxCell x this.cyCell) * 2) double-wide characters (cell size is this.cxCell*2 x this.cyCell) * 3) double-high double-wide characters (cell size is this.cxCell*2 x this.cyCell*2) - * 4) variations 1-3 with reverse video enabled - * 5) variations 1-3 with underlining enabled + * 4) all of the above with either reverse video or underline enabled (default is reverse video) * * @this {Video} * @param {number} cxCell is the target width of each character in the grid * @param {number} cyCell is the target height of each character in the grid - * @param {Array} [rgbOn] contains the RGB values for the font (default is white) - * @param {boolean} [fReverse] * @param {boolean} [fUnderline] * @return {Object} */ -Video.prototype.createFontVariation = function(cxCell, cyCell, rgbOn, fReverse, fUnderline) +Video.prototype.createFontVariation = function(cxCell, cyCell, fUnderline) { /* * On a VT100, cxCell,cyCell is initially 10,10, but may change to 9,10 for 132-column mode. @@ -521,6 +533,12 @@ Video.prototype.createFontVariation = function(cxCell, cyCell, rgbOn, fReverse, var nFontByteOffset = nFontBytesPerChar > 8? 15 : 0; var nChars = this.abFontData.length / nFontBytesPerChar; + /* + * The absence of a boolean for fUnderline means that both fReverse and fUnderline are "falsey". The presence + * of a boolean means that fReverse will be true OR fUnderline will be true, but NOT both. + */ + var fReverse = (fUnderline === false); + var font = {cxCell: cxCell, cyCell: cyCell}; font.canvas = document.createElement("canvas"); font.canvas.width = cxCell * 16; @@ -543,6 +561,7 @@ Video.prototype.createFontVariation = function(cxCell, cyCell, rgbOn, fReverse, */ var bit = bits & (0x80 >> (x > 7? 7 : x)); for (var nCols = 0; nCols < (cxCell / this.cxCell); nCols++) { + if (fReverse) bit = !bit; this.setPixel(imageChar, xDst, yDst, bit? 1 : 0); xDst++; } @@ -880,7 +899,7 @@ Video.prototype.setPixel = function(image, x, y, bPixel) Video.prototype.updateChar = function(idFont, col, row, data, context) { var bChar = data & 0x7f; - var font = this.aFonts[idFont]; + var font = this.aFonts[idFont][(data & 0x80)? 1 : 0]; if (!font) return; var xSrc = (bChar & 0xf) * font.cxCell; @@ -996,7 +1015,7 @@ Video.prototype.updateVT100 = function() * TODO: If bit 8 is set, we must select a different font variation, depending on which per-character * screen attribute is currently enabled (ie, reverse video or underline). */ - this.updateChar(font, iCol, nRows, data & 0x7f, this.contextBuffer); + this.updateChar(font, iCol, nRows, data, this.contextBuffer); cUpdated++; } iCell++; diff --git a/versions/pc8080/1.23.3/pc8080-dbg.js b/versions/pc8080/1.23.3/pc8080-dbg.js index 5a7377543..d76a52324 100644 --- a/versions/pc8080/1.23.3/pc8080-dbg.js +++ b/versions/pc8080/1.23.3/pc8080-dbg.js @@ -1,116 +1,117 @@ (function(){var m;function ba(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c} -function q(a,b){var c="";void 0===b?b=8:8=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function t(a){return"0x"+q(a,4)}function ca(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function t(a){return"0x"+r(a,4)}function ca(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0":">",'"':""","'":"'"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}function ha(a,b){return(a+" ").slice(0,b)}function ia(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} function ja(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a>1,g;g=c(b,a[h]);0a?"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 ma(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=this.I?10:20>=this.I?12:24>=this.I?14:15;this.Aa=1<>2;this.B=this.Aa-1;this.K=this.N/this.Aa|0;this.J=this.K-1;this.u=[];this.C=[];this.F=this.H=!1;this.Z=[];this.ba=[];a=new E;rb(a,this.G);this.U=Array(this.K);for(b=0;b>>a.ga;0f&&(k=f);if(g&&g.size){if(g.type==d){if(e+f<=g.D)return g.tb+=g.D-e,g.D=e,!0;if(e>=g.D+g.tb){k=g.size-(e-l);k>f&&(k=f);g.tb=e-g.D+k;e=l+a.Aa;f-=k;h++;continue}}return tb(1,e,f)}e=new E(e,k,a.Aa,d);rb(e,a.G,g);a.U[h++]=e;e=l+a.Aa;f-=k}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ub[d]+" at "+t(b)),!0):tb(2,b,c)}m.W=function(a){return this.U[(a&this.w)>>>this.ga].ib(a&this.B,a)}; -function vb(a,b){return a.U[(b&a.w)>>>a.ga].rb(b&a.B,b)}m.La=function(a){var b=a&this.B,c=(a&this.w)>>>this.ga;return b!=this.B?this.U[c].bc(b,a):this.U[c++].ib(b,a)|this.U[c&this.J].ib(0,a+1)<<8};function wb(a,b){var c=b&a.B,d=(b&a.w)>>>a.ga;return c!=a.B?a.U[d].Lb(c,b):a.U[d++].rb(c,b)|a.U[d&a.J].rb(0,b+1)<<8}m.ka=function(a,b){this.U[(a&this.w)>>>this.ga].kb(a&this.B,b&255,a)};function xb(a,b,c){a.U[(b&a.w)>>>a.ga].ub(b&a.B,c&255,b)} -m.Cb=function(a,b){var c=a&this.B,d=(a&this.w)>>>this.ga;c!=this.B?this.U[d].dc(c,b&65535,a):(this.U[d++].kb(c,b&255,a),this.U[d&this.J].kb(0,b>>8&255,a+1))};function yb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][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 nb(a){y.call(this,"Panel",a,nb)}Wa(nb);m=nb.prototype;m.pa=function(a,b,c,d){return this.u&&this.u.pa(a,b,c,d)||this.b&&this.b.pa(a,b,c,d)||this.ya&&this.ya.pa(a,b,c,d)||this.G&&this.G.pa(a,b,c,d)?!0:this.parent.pa.call(this,a,b,c,d)};m.Ka=function(a,b,c,d){this.u=a;this.B=b;this.b=c;this.G=d;this.ya=ob(a,"Keyboard")};m.Ea=function(a,b){b||pb();return!0};m.Ha=function(){return!0};m.Ba=function(){}; +function pb(){for(var a=!1,b=B(document,"pc8080","panel"),c=0;c=this.I?10:20>=this.I?12:24>=this.I?14:15;this.Aa=1<>2;this.B=this.Aa-1;this.K=this.N/this.Aa|0;this.J=this.K-1;this.u=[];this.C=[];this.F=this.H=!1;this.Z=[];this.ba=[];a=new E;rb(a,this.G);this.U=Array(this.K);for(b=0;b>>a.ha;0f&&(k=f);if(g&&g.size){if(g.type==d){if(e+f<=g.D)return g.ub+=g.D-e,g.D=e,!0;if(e>=g.D+g.ub){k=g.size-(e-l);k>f&&(k=f);g.ub=e-g.D+k;e=l+a.Aa;f-=k;h++;continue}}return tb(1,e,f)}e=new E(e,k,a.Aa,d);rb(e,a.G,g);a.U[h++]=e;e=l+a.Aa;f-=k}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ub[d]+" at "+t(b)),!0):tb(2,b,c)}m.W=function(a){return this.U[(a&this.w)>>>this.ha].ib(a&this.B,a)}; +function vb(a,b){return a.U[(b&a.w)>>>a.ha].sb(b&a.B,b)}m.La=function(a){var b=a&this.B,c=(a&this.w)>>>this.ha;return b!=this.B?this.U[c].cc(b,a):this.U[c++].ib(b,a)|this.U[c&this.J].ib(0,a+1)<<8};function wb(a,b){var c=b&a.B,d=(b&a.w)>>>a.ha;return c!=a.B?a.U[d].Lb(c,b):a.U[d++].sb(c,b)|a.U[d&a.J].sb(0,b+1)<<8}m.ma=function(a,b){this.U[(a&this.w)>>>this.ha].kb(a&this.B,b&255,a)};function xb(a,b,c){a.U[(b&a.w)>>>a.ha].vb(b&a.B,c&255,b)} +m.Cb=function(a,b){var c=a&this.B,d=(a&this.w)>>>this.ha;c!=this.B?this.U[d].ec(c,b&65535,a):(this.U[d++].kb(c,b&255,a),this.U[d&this.J].kb(0,b>>8&255,a+1))};function yb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]} function zb(a,b,c){for(var d=1,e=0,f=0;0>>=f)&l;if(void 0!==h){if(h[0])h[0](b,l,d);a.G&&a.H!=h[1]&&Db(a.G,b,l)}else a.G&&(cb(a.G,a,b,l,d),a.H&&Db(a.G,b,l));f+=g<<3;b+=g;e-=g}}function tb(a,b,c){w("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Nb;if(lb){var Ob=new ArrayBuffer(2);(new DataView(Ob)).setUint16(0,256,!0);Nb=256===(new Uint16Array(Ob))[0]}else Nb=!1;var Pb=Nb; -function E(a,b,c,d){this.id=Qb+=2;this.b=null;this.D=a;this.tb=b;this.size=c||0;this.type=d||Rb;this.L=d==Sb;rb(this);this.Fa=this.Qb=!1;if(c)if(lb)this.F=new ArrayBuffer(c),this.H=new DataView(this.F,0,c),this.B=new Uint8Array(this.F,0,c),this.J=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),Tb(this,Pb?Ub:Vb);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},qa: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},xa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<>8);this.Fa=!0},Z:function(a,b){if(this.G&&null!=this.D){var c=this.G;$b(c,this.D+a,1,c.Z)&&c.ea(!0)}return this.rb(a,b)},ia:function(a,b){if(this.G&&null!=this.D){var c=this.G;$b(c,this.D+a,2,c.Z)&&c.ea(!0)}return this.Lb(a,b)},va:function(a,b,c){if(this.G&&null!=this.D){var d=this.G;$b(d,this.D+a,1,d.H)&&d.ea(!0)}this.L?this.w(a,b,c):this.ub(a,b,c)},Ca:function(a, -b,c){if(this.G&&null!=this.D){var d=this.G;$b(d,this.D+a,2,d.H)&&d.ea(!0)}this.L?this.w(a,b,c):this.Mb(a,b,c)},X:function(a){return this.B[a]},ba:function(a){return this.B[a]},fa:function(a){return this.H.getUint16(a,!0)},pa:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.J[a>>1]},ta:function(a,b){this.B[a]=b;this.Fa=!0},wa:function(a,b){this.B[a]=b;this.Fa=!0},ya:function(a,b){this.H.setUint16(a,b,!0);this.Fa=!0},Da:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.J[a>>1]=b;this.Fa=!0}}; -function rb(a,b,c){a.G=b;a.u=a.C=0;c&&((a.u=c.u)&&Zb(a,Yb,!1),(a.C=c.C)&&Xb(a,Yb,!1))}function ac(a,b){b?0===--a.C&&(a.kb=a.L?a.w:a.ub,a.dc=a.L?a.I:a.Mb):0===--a.u&&(a.ib=a.rb,a.bc=a.Lb)}function Xb(a,b,c){c&&a.C||(a.kb=!a.L&&b[2]||a.w,a.dc=!a.L&&b[3]||a.I);if(c||void 0===c)a.ub=b[2]||a.w,a.Mb=b[3]||a.I}function Zb(a,b,c){c&&a.u||(a.ib=b[0]||a.K,a.bc=b[1]||a.N);if(c||void 0===c)a.rb=b[0]||a.K,a.Lb=b[1]||a.N}function Tb(a,b){b||(b=bc);Zb(a,b,void 0);Xb(a,b,void 0)} -var bc=[],Wb=[E.prototype.ca,E.prototype.qa,E.prototype.xa,E.prototype.Ia],Yb=[E.prototype.Z,E.prototype.ia,E.prototype.va,E.prototype.Ca];if(lb)var Vb=[E.prototype.X,E.prototype.fa,E.prototype.ta,E.prototype.ya],Ub=[E.prototype.ba,E.prototype.pa,E.prototype.wa,E.prototype.Da]; -function cc(a,b){y.call(this,"CPU",a,cc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.hb=c;this.i.Bb=0;this.i.Ta=d;this.i.Ib=Math.round(this.i.hb/1E4)/100;this.i.Qa=this.i.Ib*this.i.Ta;this.A.ra=!1;this.A.Hb=!1;this.A.Pb=a.autoStart;this.A.Rb=!1;this.A.Za=!1;this.i.lb=this.i.eb=0;this.i.mb=a.csStart;this.i.cb=a.csInterval;this.i.fb=a.csStop;this.ba=this.Ua.bind(this);C(this)}Wa(cc);var dc=["power","reset"];m=cc.prototype; -m.Ka=function(a,b,c,d){this.u=a;this.B=b;this.G=d;for(b=0;b=a.i.eb&&(a.i.eb+=a.i.cb,c=!0);0<=a.i.fb&&a.i.fb<=wc(a)&&(a.i.cb=a.i.fb=-1,gc(a),a.ea(),c=!0);c&&a.g(wc(a)+" cycles: checksum="+q(a.i.lb))}} -m.oa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.L[b]=c;a=!0;break;case "run":this.L[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.A.ma)a=!0;else{var b=null,c,g=Za(a.id);for(c=0;c>>=f)&l;if(void 0!==h){if(h[0])h[0](b,l,d);a.G&&a.H!=h[1]&&Db(a.G,b,l)}else a.G&&(cb(a.G,a,b,l,d),a.H&&Db(a.G,b,l));f+=g<<3;b+=g;e-=g}}function tb(a,b,c){x("Memory block error ("+a+": "+r(b)+","+r(c)+")");return!1}var Eb;if(lb){var Ob=new ArrayBuffer(2);(new DataView(Ob)).setUint16(0,256,!0);Eb=256===(new Uint16Array(Ob))[0]}else Eb=!1;var Pb=Eb; +function E(a,b,c,d){this.id=Qb+=2;this.b=null;this.D=a;this.ub=b;this.size=c||0;this.type=d||Rb;this.L=d==Sb;rb(this);this.Fa=this.Qb=!1;if(c)if(lb)this.F=new ArrayBuffer(c),this.H=new DataView(this.F,0,c),this.B=new Uint8Array(this.F,0,c),this.J=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),Tb(this,Pb?Ub:Vb);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra: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},xa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<>8);this.Fa=!0},Z:function(a,b){if(this.G&&null!=this.D){var c=this.G;$b(c,this.D+a,1,c.Z)&&c.fa(!0)}return this.sb(a,b)},ja:function(a,b){if(this.G&&null!=this.D){var c=this.G;$b(c,this.D+a,2,c.Z)&&c.fa(!0)}return this.Lb(a,b)},va:function(a,b,c){if(this.G&&null!=this.D){var d=this.G;$b(d,this.D+a,1,d.H)&&d.fa(!0)}this.L?this.w(a,b,c):this.vb(a,b,c)},Ca:function(a, +b,c){if(this.G&&null!=this.D){var d=this.G;$b(d,this.D+a,2,d.H)&&d.fa(!0)}this.L?this.w(a,b,c):this.Mb(a,b,c)},X:function(a){return this.B[a]},ba:function(a){return this.B[a]},ga:function(a){return this.H.getUint16(a,!0)},qa:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.J[a>>1]},ua:function(a,b){this.B[a]=b;this.Fa=!0},wa:function(a,b){this.B[a]=b;this.Fa=!0},ya:function(a,b){this.H.setUint16(a,b,!0);this.Fa=!0},Da:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.J[a>>1]=b;this.Fa=!0}}; +function rb(a,b,c){a.G=b;a.u=a.C=0;c&&((a.u=c.u)&&Zb(a,Yb,!1),(a.C=c.C)&&Xb(a,Yb,!1))}function ac(a,b){b?0===--a.C&&(a.kb=a.L?a.w:a.vb,a.ec=a.L?a.I:a.Mb):0===--a.u&&(a.ib=a.sb,a.cc=a.Lb)}function Xb(a,b,c){c&&a.C||(a.kb=!a.L&&b[2]||a.w,a.ec=!a.L&&b[3]||a.I);if(c||void 0===c)a.vb=b[2]||a.w,a.Mb=b[3]||a.I}function Zb(a,b,c){c&&a.u||(a.ib=b[0]||a.K,a.cc=b[1]||a.N);if(c||void 0===c)a.sb=b[0]||a.K,a.Lb=b[1]||a.N}function Tb(a,b){b||(b=bc);Zb(a,b,void 0);Xb(a,b,void 0)} +var bc=[],Wb=[E.prototype.ca,E.prototype.ra,E.prototype.xa,E.prototype.Ia],Yb=[E.prototype.Z,E.prototype.ja,E.prototype.va,E.prototype.Ca];if(lb)var Vb=[E.prototype.X,E.prototype.ga,E.prototype.ua,E.prototype.ya],Ub=[E.prototype.ba,E.prototype.qa,E.prototype.wa,E.prototype.Da]; +function cc(a,b){y.call(this,"CPU",a,cc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.hb=c;this.i.Bb=0;this.i.Ta=d;this.i.Ib=Math.round(this.i.hb/1E4)/100;this.i.Qa=this.i.Ib*this.i.Ta;this.A.sa=!1;this.A.Gb=!1;this.A.Pb=a.autoStart;this.A.Rb=!1;this.A.Za=!1;this.i.mb=this.i.eb=0;this.i.nb=a.csStart;this.i.cb=a.csInterval;this.i.fb=a.csStop;this.ba=this.Ua.bind(this);D(this)}Wa(cc);var dc=["power","reset"];m=cc.prototype; +m.Ka=function(a,b,c,d){this.u=a;this.B=b;this.G=d;for(b=0;b=a.i.eb&&(a.i.eb+=a.i.cb,c=!0);0<=a.i.fb&&a.i.fb<=wc(a)&&(a.i.cb=a.i.fb=-1,gc(a),a.fa(),c=!0);c&&a.g(wc(a)+" cycles: checksum="+r(a.i.mb))}} +m.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.L[b]=c;a=!0;break;case "run":this.L[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.A.na)a=!0;else{var b=null,c,g=Za(a.id);for(c=0;cc&&(c=2);var d=1;b&&1a.i.Pa/a.i.Qa?b=1:d=!0;a.i.Ta=b;b=a.i.Ib*a.i.Ta;if(a.i.Qa!=b){a.i.Qa=b;b=a.i.Qa.toFixed(2)+"Mhz";var e=a.L.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.sb()}yc(a,a.H);a.H=0;a.i.bb=ka();a.i.Sa=0;zc(a);return d} -m.Ua=function(a){if(hb(this,!0)){if(!this.A.ra){xc(this);this.u&&this.u.start(this.i.bb,wc(this));this.A.ra=!0;this.A.Hb=!0;this.C&&this.C.start();var b=this.L.run;b&&(b.textContent="Halt");this.u&&(this.u.Ba(!0),a&&this.u.sb(!0))}this.i.Kb>=this.i.hb&&zc(this,!0);this.i.pb=0;this.i.Ab=ka();this.i.Sa&&(a=this.i.Ab-this.i.Sa,a>this.i.Yb&&(this.i.bb+=a,this.i.bb>this.i.Ab&&(this.i.bb=this.i.Ab)));try{do{this.jb(this.A.Za?1:this.i.mc);var c=this.F-this.b;this.H+=c;this.i.pb+=c;yc(this,0,!0);vc(this, -c);this.i.ob-=c;0>=this.i.ob&&(this.i.ob+=this.i.$b,this.u&&Ac(this.u,this.i.Bb++),this.i.Bb>this.K&&(this.i.Bb=0));this.i.nb-=c;0>=this.i.nb&&(this.i.nb+=this.i.Zb,this.u&&this.u.Ba());this.i.gb-=c;if(0>=this.i.gb){this.i.gb+=this.i.Jb;break}}while(this.A.ra)}catch(e){this.ea();tc(this);this.u&&this.u.stop(ka(),wc(this));hb(this,!1);kb(this,e.stack||e.message);return}c=setTimeout;a=this.ba;this.i.Sa=ka();b=this.i.Yb;this.i.pb&&(b=Math.round(b*this.i.pb/this.i.Jb));var b=b-(this.i.Sa-this.i.Ab),d= -this.i.Sa-this.i.bb;d&&(this.i.Pa=Math.round(this.H/(10*d))/100,864E5<=d&&(this.I=0,xc(this)));if(0>b||this.i.Pa>8&255;a.P=b&255}function Lc(a){return a.R<<8|a.S}function Mc(a,b){a.R=b>>8&255;a.S=b&255}function I(a){return a.T<<8|a.V} -function Nc(a,b){a.T=b>>8&255;a.V=b&255}function F(a,b){a.M=b&65535}function J(a){return a.Y&256?1:0}function Oc(a,b){a.Y=a.Y&255|b}function Pc(a){return mb[a.aa&255]?4:0}function Qc(a){return(a.aa^a.na)&16?16:0}function Rc(a){return a.Y&255?0:64}function Sc(a){return a.aa&128?128:0}function Hc(a){return a.sa&-214|Sc(a)|Rc(a)|Qc(a)|Pc(a)|J(a)}function Fc(a,b){a.Y=a.aa=a.na=0;b&1&&(a.Y|=256);b&4||(a.aa|=1);b&16&&(a.na|=16);b&64||(a.Y|=255);b&128&&(a.aa^=192);a.sa=a.sa&-726|b&512|2} -function Tc(a,b){a.na=a.j^b;return a.aa=(a.Y=a.j+b)&255}function Uc(a,b){a.na=a.j^b;return a.aa=(a.Y=a.j+b+(a.Y&256?1:0))&255}function Vc(a,b){a.Y=a.aa=a.na=a.j&b;(a.j|b)&8&&(a.na^=16);return a.Y}function Wc(a,b){a.na=b^255;b=a.aa=b+255&255;a.Y=a.Y&-256|b;return b}function Xc(a,b){a.na=b;b=a.aa=b+1&255;a.Y=a.Y&-256|b;return b}function Yc(a,b){return a.aa=a.Y=a.na=a.j|b}function K(a,b){b^=255;a.na=a.j^b;return a.aa=(a.Y=a.j+b+1^256)&255} -function Zc(a,b){b^=255;a.na=a.j^b;return a.aa=(a.Y=a.j+b+(a.Y&256?0:1)^256)&255}function rd(a,b){return a.aa=a.Y=a.na=a.j^b}m.W=function(a){return this.B.W(a)};m.ka=function(a,b){this.B.ka(a,b)};function L(a){var b=a.W(a.M);F(a,a.M+1);return b}function O(a){var b=a.B.La(a.M);F(a,a.M+2);return b}function P(a){var b=a.B.La(a.da);a.da=a.da+2&65535;return b}function Q(a,b){a.da=a.da-2&65535;a.B.Cb(a.da,b)} -function S(a,b,c,d){d=d||2;a.L[b]&&(void 0===c&&(kb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.A.ra||a.A.Rb?q(c,d):"--------".substr(0,d),a.L[b].textContent!=c&&(a.L[b].textContent=c))} -m.Ba=function(a){this.Z&&(a||!this.A.ra||this.A.Rb)&&(S(this,"A",this.j),S(this,"B",this.O),S(this,"C",this.P),S(this,"BC",Jc(this),4),S(this,"D",this.R),S(this,"E",this.S),S(this,"DE",Lc(this),4),S(this,"H",this.T),S(this,"L",this.V),S(this,"HL",I(this),4),S(this,"SP",this.da,4),S(this,"PC",this.M,4),a=Hc(this),S(this,"PS",a,4),S(this,"IF",a&512?1:0,1),S(this,"SF",a&128?1:0,1),S(this,"ZF",a&64?1:0,1),S(this,"AF",a&16?1:0,1),S(this,"PF",a&4?1:0,1),S(this,"CF",a&1?1:0,1));if(a=this.L.speed)a.textContent= -this.A.ra&&this.i.Pa?this.i.Pa.toFixed(2)+"Mhz":"Stopped"}; -m.jb=function(a){this.A.vb=!0;var b=this.A.gc=this.G&&sd(this.G),c=a?this.A.Hb?0:1:-1;this.A.Hb=!1;this.F=this.b=a;do{if(this.w){var d;this.w&8&&this.sa&512?(d=199|(this.w&7)<<3,this.w&=-16,this.sa&=-513,this.N[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.w&16){this.b=0;break}}if(b){if(td(this.G,this.M,c)){this.ea();break}c=1}this.N[L(this)].call(this)}while(0c&&(c=2);var d=1;b&&1a.i.Pa/a.i.Qa?b=1:d=!0;a.i.Ta=b;b=a.i.Ib*a.i.Ta;if(a.i.Qa!=b){a.i.Qa=b;b=a.i.Qa.toFixed(2)+"Mhz";var e=a.L.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.tb()}yc(a,a.H);a.H=0;a.i.bb=ka();a.i.Sa=0;zc(a);return d} +m.Ua=function(a){if(fb(this,!0)){if(!this.A.sa){xc(this);this.u&&this.u.start(this.i.bb,wc(this));this.A.sa=!0;this.A.Gb=!0;this.C&&this.C.start();var b=this.L.run;b&&(b.textContent="Halt");this.u&&(this.u.Ba(!0),a&&this.u.tb(!0))}this.i.Kb>=this.i.hb&&zc(this,!0);this.i.qb=0;this.i.Ab=ka();this.i.Sa&&(a=this.i.Ab-this.i.Sa,a>this.i.Yb&&(this.i.bb+=a,this.i.bb>this.i.Ab&&(this.i.bb=this.i.Ab)));try{do{this.jb(this.A.Za?1:this.i.nc);var c=this.F-this.b;this.H+=c;this.i.qb+=c;yc(this,0,!0);vc(this, +c);this.i.pb-=c;0>=this.i.pb&&(this.i.pb+=this.i.$b,this.u&&Ac(this.u,this.i.Bb++),this.i.Bb>this.K&&(this.i.Bb=0));this.i.ob-=c;0>=this.i.ob&&(this.i.ob+=this.i.Zb,this.u&&this.u.Ba());this.i.gb-=c;if(0>=this.i.gb){this.i.gb+=this.i.Jb;break}}while(this.A.sa)}catch(e){this.fa();tc(this);this.u&&this.u.stop(ka(),wc(this));fb(this,!1);kb(this,e.stack||e.message);return}c=setTimeout;a=this.ba;this.i.Sa=ka();b=this.i.Yb;this.i.qb&&(b=Math.round(b*this.i.qb/this.i.Jb));var b=b-(this.i.Sa-this.i.Ab),d= +this.i.Sa-this.i.bb;d&&(this.i.Pa=Math.round(this.H/(10*d))/100,864E5<=d&&(this.I=0,xc(this)));if(0>b||this.i.Pa>8&255;a.P=b&255}function Lc(a){return a.R<<8|a.S}function Mc(a,b){a.R=b>>8&255;a.S=b&255}function J(a){return a.T<<8|a.V} +function Nc(a,b){a.T=b>>8&255;a.V=b&255}function F(a,b){a.M=b&65535}function K(a){return a.Y&256?1:0}function Oc(a,b){a.Y=a.Y&255|b}function Pc(a){return mb[a.aa&255]?4:0}function Qc(a){return(a.aa^a.oa)&16?16:0}function Rc(a){return a.Y&255?0:64}function Sc(a){return a.aa&128?128:0}function Hc(a){return a.ta&-214|Sc(a)|Rc(a)|Qc(a)|Pc(a)|K(a)}function Fc(a,b){a.Y=a.aa=a.oa=0;b&1&&(a.Y|=256);b&4||(a.aa|=1);b&16&&(a.oa|=16);b&64||(a.Y|=255);b&128&&(a.aa^=192);a.ta=a.ta&-726|b&512|2} +function Tc(a,b){a.oa=a.j^b;return a.aa=(a.Y=a.j+b)&255}function Uc(a,b){a.oa=a.j^b;return a.aa=(a.Y=a.j+b+(a.Y&256?1:0))&255}function Vc(a,b){a.Y=a.aa=a.oa=a.j&b;(a.j|b)&8&&(a.oa^=16);return a.Y}function Wc(a,b){a.oa=b^255;b=a.aa=b+255&255;a.Y=a.Y&-256|b;return b}function Xc(a,b){a.oa=b;b=a.aa=b+1&255;a.Y=a.Y&-256|b;return b}function Yc(a,b){return a.aa=a.Y=a.oa=a.j|b}function L(a,b){b^=255;a.oa=a.j^b;return a.aa=(a.Y=a.j+b+1^256)&255} +function Zc(a,b){b^=255;a.oa=a.j^b;return a.aa=(a.Y=a.j+b+(a.Y&256?0:1)^256)&255}function rd(a,b){return a.aa=a.Y=a.oa=a.j^b}m.W=function(a){return this.B.W(a)};m.ma=function(a,b){this.B.ma(a,b)};function M(a){var b=a.W(a.M);F(a,a.M+1);return b}function O(a){var b=a.B.La(a.M);F(a,a.M+2);return b}function P(a){var b=a.B.La(a.ea);a.ea=a.ea+2&65535;return b}function Q(a,b){a.ea=a.ea-2&65535;a.B.Cb(a.ea,b)} +function S(a,b,c,d){d=d||2;a.L[b]&&(void 0===c&&(kb(a,"Value for "+b+" is invalid"),a.fa()),c=!a.A.sa||a.A.Rb?r(c,d):"--------".substr(0,d),a.L[b].textContent!=c&&(a.L[b].textContent=c))} +m.Ba=function(a){this.Z&&(a||!this.A.sa||this.A.Rb)&&(S(this,"A",this.j),S(this,"B",this.O),S(this,"C",this.P),S(this,"BC",Jc(this),4),S(this,"D",this.R),S(this,"E",this.S),S(this,"DE",Lc(this),4),S(this,"H",this.T),S(this,"L",this.V),S(this,"HL",J(this),4),S(this,"SP",this.ea,4),S(this,"PC",this.M,4),a=Hc(this),S(this,"PS",a,4),S(this,"IF",a&512?1:0,1),S(this,"SF",a&128?1:0,1),S(this,"ZF",a&64?1:0,1),S(this,"AF",a&16?1:0,1),S(this,"PF",a&4?1:0,1),S(this,"CF",a&1?1:0,1));if(a=this.L.speed)a.textContent= +this.A.sa&&this.i.Pa?this.i.Pa.toFixed(2)+"Mhz":"Stopped"}; +m.jb=function(a){this.A.wb=!0;var b=this.A.hc=this.G&&sd(this.G),c=a?this.A.Gb?0:1:-1;this.A.Gb=!1;this.F=this.b=a;do{if(this.w){var d;this.w&8&&this.ta&512?(d=199|(this.w&7)<<3,this.w&=-16,this.ta&=-513,this.N[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.w&16){this.b=0;break}}if(b){if(td(this.G,this.M,c)){this.fa();break}c=1}this.N[M(this)].call(this)}while(0>8;Oc(this,a&256);this.b-=4},ud,function(){var a;Nc(this,a=I(this)+Jc(this));Oc(this,a>>8&256);this.b-=10},function(){this.j=this.W(Jc(this));this.b-=7},function(){Kc(this,Jc(this)-1);this.b-= -5},function(){this.P=Xc(this,this.P);this.b-=5},function(){this.P=Wc(this,this.P);this.b-=5},function(){this.P=L(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;Oc(this,a);this.b-=4},ud,function(){Mc(this,O(this));this.b-=10},function(){this.ka(Lc(this),this.j);this.b-=7},function(){Mc(this,Lc(this)+1);this.b-=5},function(){this.R=Xc(this,this.R);this.b-=5},function(){this.R=Wc(this,this.R);this.b-=5},function(){this.R=L(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255| -J(this);Oc(this,a&256);this.b-=4},ud,function(){var a;Nc(this,a=I(this)+Lc(this));Oc(this,a>>8&256);this.b-=10},function(){this.j=this.W(Lc(this));this.b-=7},function(){Mc(this,Lc(this)-1);this.b-=5},function(){this.S=Xc(this,this.S);this.b-=5},function(){this.S=Wc(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=this.j<<8;this.j=(J(this)<<8|this.j)>>1;Oc(this,a&256);this.b-=4},ud,function(){Nc(this,O(this));this.b-=10},function(){var a=O(this);this.B.Cb(a,I(this));this.b-= -16},function(){Nc(this,I(this)+1);this.b-=5},function(){this.T=Xc(this,this.T);this.b-=5},function(){this.T=Wc(this,this.T);this.b-=5},function(){this.T=L(this);this.b-=7},function(){var a=0,b=J(this);if(Qc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Tc(this,a);Oc(this,b?256:0);this.b-=4},ud,function(){var a;Nc(this,a=I(this)+I(this));Oc(this,a>>8&256);this.b-=10},function(){var a;a=O(this);a=this.B.La(a);Nc(this,a);this.b-=16},function(){Nc(this,I(this)-1);this.b-=5},function(){this.V= -Xc(this,this.V);this.b-=5},function(){this.V=Wc(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},ud,function(){this.da=O(this)&65535;this.b-=10},function(){this.ka(O(this),this.j);this.b-=13},function(){this.da=this.da+1&65535;this.b-=5},function(){var a=I(this);this.ka(a,Xc(this,this.W(a)));this.b-=10},function(){var a=I(this);this.ka(a,Wc(this,this.W(a)));this.b-=10},function(){this.ka(I(this),L(this));this.b-=10},function(){this.Y|=256;this.b-= -4},ud,function(){var a;Nc(this,a=I(this)+this.da);Oc(this,a>>8&256);this.b-=10},function(){this.j=this.W(O(this));this.b-=13},function(){this.da=this.da-1&65535;this.b-=5},function(){this.j=Xc(this,this.j);this.b-=5},function(){this.j=Wc(this,this.j);this.b-=5},function(){this.j=L(this);this.b-=7},function(){Oc(this,J(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.T;this.b-= -5},function(){this.O=this.V;this.b-=5},function(){this.O=this.W(I(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.T;this.b-=5},function(){this.P=this.V;this.b-=5},function(){this.P=this.W(I(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R= -this.S;this.b-=5},function(){this.R=this.T;this.b-=5},function(){this.R=this.V;this.b-=5},function(){this.R=this.W(I(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W(I(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.T=this.O;this.b-=5},function(){this.T= -this.P;this.b-=5},function(){this.T=this.R;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W(I(this));this.b-=7},function(){this.T=this.j;this.b-=5},function(){this.V=this.O;this.b-=5},function(){this.V=this.P;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V=this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.b-=5},function(){this.V=this.W(I(this));this.b-=7},function(){this.V=this.j; -this.b-=5},function(){this.ka(I(this),this.O);this.b-=7},function(){this.ka(I(this),this.P);this.b-=7},function(){this.ka(I(this),this.R);this.b-=7},function(){this.ka(I(this),this.S);this.b-=7},function(){this.ka(I(this),this.T);this.b-=7},function(){this.ka(I(this),this.V);this.b-=7},function(){var a=this.M-1;if(this.J.length)for(var b=0;b>8;this.b-=10},function(){var a=O(this);Sc(this)||F(this,a);this.b-=10},function(){this.sa&=-513;this.b-=4},function(){var a=O(this);Sc(this)||(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Hc(this)&255|this.j<<8);this.b-=11},function(){this.j=Yc(this,L(this));this.b-=7},function(){Q(this,this.M);F(this,48);this.b-=11},function(){Sc(this)&&(F(this,P(this)), -this.b-=6);this.b-=5},function(){this.da=I(this)&65535;this.b-=5},function(){var a=O(this);Sc(this)&&F(this,a);this.b-=10},function(){this.sa|=512;this.b-=4},function(){var a=O(this);Sc(this)&&(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},xd,function(){K(this,L(this));this.b-=7},function(){Q(this,this.M);F(this,56);this.b-=11}]; -function T(a){y.call(this,"ChipSet",a,T,32768);var b=a.model;b&&!yd[b]&&w("Unrecognized ChipSet model: "+b);this.Ra=yd[b]||zd;a.sound&&(this.N=null,window&&(this.N=window.AudioContext||window.webkitAudioContext),this.N&&new this.N);C(this)}Wa(T);var zd=1978.1,yd={SI1978:zd};m=T.prototype;m.oa=function(){return!1}; -m.Ka=function(a,b,c,d){this.B=b;this.b=c;this.G=d;this.u=a;if(this.Ra==zd){var e;a=Ad;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.u[g]?w("Input port "+t(g)+" already registered"):c.u[g]=[h,!1]}var l;e=Bd;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.C[d]?w("Output port "+t(d)+" already registered"):f.C[d]=[c,!1]}}; -m.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.Ha=function(a){return a?this.save():!0};m.reset=function(){this.J=14;this.C=8;this.H=this.I=this.F=this.w=this.K=0};m.save=function(){var a=new Ic(this);this.Ra==zd&&G(a,0,[this.J,this.C,this.K,this.w,this.F,this.H,this.I]);return a.data()};m.restore=function(a){a=a[0];this.Ra==zd&&(this.J=a[0],this.C=a[1],this.K=a[2],this.w=a[3],this.F=a[4],this.H=a[5],this.I=a[6]);return!0};m.start=function(){};m.stop=function(){}; -function Cd(a,b,c){a.C&=~b;c&&(a.C|=b)}m.ic=function(a,b){var c=this.J;bb(this,a,null,b,"STATUS0",c);return c};m.jc=function(a,b){var c=this.C;bb(this,a,null,b,"STATUS1",c);return c};m.kc=function(a,b){var c=this.K;bb(this,a,null,b,"STATUS2",c);return c};m.hc=function(a,b){var c=this.w>>8-this.F&255;bb(this,a,null,b,"SHIFT.RESULT",c);return c};m.pc=function(a,b,c){bb(this,a,b,c,"SHIFT.COUNT",null);this.F=b};m.rc=function(a,b,c){bb(this,a,b,c,"SOUND1",null);this.H=b}; -m.qc=function(a,b,c){bb(this,a,b,c,"SHIFT.DATA",null);this.w=b<<8|this.w>>8};m.sc=function(a,b,c){bb(this,a,b,c,"SOUND2",null);this.I=b};m.tc=function(a,b,c){bb(this,a,b,c,"WATCHDOG",null)};var Ad={0:T.prototype.ic,1:T.prototype.jc,2:T.prototype.kc,3:T.prototype.hc},Bd={2:T.prototype.pc,3:T.prototype.rc,4:T.prototype.qc,5:T.prototype.sc,6:T.prototype.tc};Ja(function(){for(var a=B(document,"pc8080","chipset"),b=0;b>8;Oc(this,a&256);this.b-=4},ud,function(){var a;Nc(this,a=J(this)+Jc(this));Oc(this,a>>8&256);this.b-=10},function(){this.j=this.W(Jc(this));this.b-=7},function(){Kc(this,Jc(this)-1);this.b-= +5},function(){this.P=Xc(this,this.P);this.b-=5},function(){this.P=Wc(this,this.P);this.b-=5},function(){this.P=M(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;Oc(this,a);this.b-=4},ud,function(){Mc(this,O(this));this.b-=10},function(){this.ma(Lc(this),this.j);this.b-=7},function(){Mc(this,Lc(this)+1);this.b-=5},function(){this.R=Xc(this,this.R);this.b-=5},function(){this.R=Wc(this,this.R);this.b-=5},function(){this.R=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255| +K(this);Oc(this,a&256);this.b-=4},ud,function(){var a;Nc(this,a=J(this)+Lc(this));Oc(this,a>>8&256);this.b-=10},function(){this.j=this.W(Lc(this));this.b-=7},function(){Mc(this,Lc(this)-1);this.b-=5},function(){this.S=Xc(this,this.S);this.b-=5},function(){this.S=Wc(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=this.j<<8;this.j=(K(this)<<8|this.j)>>1;Oc(this,a&256);this.b-=4},ud,function(){Nc(this,O(this));this.b-=10},function(){var a=O(this);this.B.Cb(a,J(this));this.b-= +16},function(){Nc(this,J(this)+1);this.b-=5},function(){this.T=Xc(this,this.T);this.b-=5},function(){this.T=Wc(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=0,b=K(this);if(Qc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Tc(this,a);Oc(this,b?256:0);this.b-=4},ud,function(){var a;Nc(this,a=J(this)+J(this));Oc(this,a>>8&256);this.b-=10},function(){var a;a=O(this);a=this.B.La(a);Nc(this,a);this.b-=16},function(){Nc(this,J(this)-1);this.b-=5},function(){this.V= +Xc(this,this.V);this.b-=5},function(){this.V=Wc(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},ud,function(){this.ea=O(this)&65535;this.b-=10},function(){this.ma(O(this),this.j);this.b-=13},function(){this.ea=this.ea+1&65535;this.b-=5},function(){var a=J(this);this.ma(a,Xc(this,this.W(a)));this.b-=10},function(){var a=J(this);this.ma(a,Wc(this,this.W(a)));this.b-=10},function(){this.ma(J(this),M(this));this.b-=10},function(){this.Y|=256;this.b-= +4},ud,function(){var a;Nc(this,a=J(this)+this.ea);Oc(this,a>>8&256);this.b-=10},function(){this.j=this.W(O(this));this.b-=13},function(){this.ea=this.ea-1&65535;this.b-=5},function(){this.j=Xc(this,this.j);this.b-=5},function(){this.j=Wc(this,this.j);this.b-=5},function(){this.j=M(this);this.b-=7},function(){Oc(this,K(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.T;this.b-= +5},function(){this.O=this.V;this.b-=5},function(){this.O=this.W(J(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.T;this.b-=5},function(){this.P=this.V;this.b-=5},function(){this.P=this.W(J(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R= +this.S;this.b-=5},function(){this.R=this.T;this.b-=5},function(){this.R=this.V;this.b-=5},function(){this.R=this.W(J(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W(J(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.T=this.O;this.b-=5},function(){this.T= +this.P;this.b-=5},function(){this.T=this.R;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W(J(this));this.b-=7},function(){this.T=this.j;this.b-=5},function(){this.V=this.O;this.b-=5},function(){this.V=this.P;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V=this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.b-=5},function(){this.V=this.W(J(this));this.b-=7},function(){this.V=this.j; +this.b-=5},function(){this.ma(J(this),this.O);this.b-=7},function(){this.ma(J(this),this.P);this.b-=7},function(){this.ma(J(this),this.R);this.b-=7},function(){this.ma(J(this),this.S);this.b-=7},function(){this.ma(J(this),this.T);this.b-=7},function(){this.ma(J(this),this.V);this.b-=7},function(){var a=this.M-1;if(this.J.length)for(var b=0;b>8;this.b-=10},function(){var a=O(this);Sc(this)||F(this,a);this.b-=10},function(){this.ta&=-513;this.b-=4},function(){var a=O(this);Sc(this)||(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Hc(this)&255|this.j<<8);this.b-=11},function(){this.j=Yc(this,M(this));this.b-=7},function(){Q(this,this.M);F(this,48);this.b-=11},function(){Sc(this)&&(F(this,P(this)), +this.b-=6);this.b-=5},function(){this.ea=J(this)&65535;this.b-=5},function(){var a=O(this);Sc(this)&&F(this,a);this.b-=10},function(){this.ta|=512;this.b-=4},function(){var a=O(this);Sc(this)&&(Q(this,this.M),F(this,a),this.b-=6);this.b-=11},xd,function(){L(this,M(this));this.b-=7},function(){Q(this,this.M);F(this,56);this.b-=11}]; +function T(a){y.call(this,"ChipSet",a,T,32768);var b=a.model;b&&!yd[b]&&x("Unrecognized ChipSet model: "+b);this.Ra=yd[b]||zd;a.sound&&(this.N=null,window&&(this.N=window.AudioContext||window.webkitAudioContext),this.N&&new this.N);D(this)}Wa(T);var zd=1978.1,yd={SI1978:zd};m=T.prototype;m.pa=function(){return!1}; +m.Ka=function(a,b,c,d){this.B=b;this.b=c;this.G=d;this.u=a;if(this.Ra==zd){var e;a=Ad;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.u[g]?x("Input port "+t(g)+" already registered"):c.u[g]=[h,!1]}var l;e=Bd;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.C[d]?x("Output port "+t(d)+" already registered"):f.C[d]=[c,!1]}}; +m.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.Ha=function(a){return a?this.save():!0};m.reset=function(){this.J=14;this.C=8;this.H=this.I=this.F=this.w=this.K=0};m.save=function(){var a=new Ic(this);this.Ra==zd&&H(a,0,[this.J,this.C,this.K,this.w,this.F,this.H,this.I]);return a.data()};m.restore=function(a){a=a[0];this.Ra==zd&&(this.J=a[0],this.C=a[1],this.K=a[2],this.w=a[3],this.F=a[4],this.H=a[5],this.I=a[6]);return!0};m.start=function(){};m.stop=function(){}; +function Cd(a,b,c){a.C&=~b;c&&(a.C|=b)}m.jc=function(a,b){var c=this.J;bb(this,a,null,b,"STATUS0",c);return c};m.kc=function(a,b){var c=this.C;bb(this,a,null,b,"STATUS1",c);return c};m.lc=function(a,b){var c=this.K;bb(this,a,null,b,"STATUS2",c);return c};m.ic=function(a,b){var c=this.w>>8-this.F&255;bb(this,a,null,b,"SHIFT.RESULT",c);return c};m.pc=function(a,b,c){bb(this,a,b,c,"SHIFT.COUNT",null);this.F=b};m.rc=function(a,b,c){bb(this,a,b,c,"SOUND1",null);this.H=b}; +m.qc=function(a,b,c){bb(this,a,b,c,"SHIFT.DATA",null);this.w=b<<8|this.w>>8};m.sc=function(a,b,c){bb(this,a,b,c,"SOUND2",null);this.I=b};m.tc=function(a,b,c){bb(this,a,b,c,"WATCHDOG",null)};var Ad={0:T.prototype.jc,1:T.prototype.kc,2:T.prototype.lc,3:T.prototype.ic},Bd={2:T.prototype.pc,3:T.prototype.rc,4:T.prototype.qc,5:T.prototype.sc,6:T.prototype.tc};Ja(function(){for(var a=B(document,"pc8080","chipset"),b=0;b>>0,h],p=ja(n,l,a.Ma);0>p&&n.splice(-(p+1),0,l)}k&&(g.a=k.replace(/''/g,'"'))}a.I.push({Ac:b,D:c,lc:d,Ja:e,Nb:f})}delete this.Ja}return!0};Dd.prototype.Ha=function(){return!0}; -function Ed(a,b,c,d){if(d)a.ha("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Fb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.Ja=e.symbols;if(!a.u.length){w("Empty ROM: "+b);return}if(1==a.u.length){w(a.u[0]);return}}catch(g){a.ha("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, +Dd.prototype.Ea=function(){if(this.Ja){if(this.G){var a=this.G,b=this.id,c=this.H,d=this.C,e=this.Ja,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var l=g.o,k=g.a;if(void 0!==l){var n=f,l=[l>>>0,h],p=ja(n,l,a.Ma);0>p&&n.splice(-(p+1),0,l)}k&&(g.a=k.replace(/''/g,'"'))}a.I.push({Bc:b,D:c,mc:d,Ja:e,Nb:f})}delete this.Ja}return!0};Dd.prototype.Ha=function(){return!0}; +function Ed(a,b,c,d){if(d)a.ia("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.Ja=e.symbols;if(!a.u.length){x("Empty ROM: "+b);return}if(1==a.u.length){x(a.u[0]);return}}catch(g){a.ia("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, " ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e>>f.ga;0>>=f.ga;0>>f.ha;0>>=f.ha;0>3)*this.ba;if(this.vc||sb(this.B,this.va,this.Na,3))1>1)),this.K=document.createElement("canvas"),this.K.width=b,this.K.height=c,this.Wa=this.K.getContext("2d"), -this.pa={},this.Ca=1<=a.nc?8:16,e=8>(7>4)*c)}return h}Pd.prototype.Ea=function(){return!0}; -Pd.prototype.oa=function(a,b,c){var d=this;switch(b){case "fullScreen":return this.L[b]=c,this.w&&this.w.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1}; -Pd.prototype.Xa=function(){var a=!1;if(this.w){if(this.w.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Z/this.X;b>c&&(a=Math.round(c/b*100)+"%")}this.zb?(this.N.style.width=a,this.N.style.width=a,this.N.style.display="block",this.N.style.margin="auto"):(this.w.style.width=a,this.w.style.height="auto");this.w.style.backgroundColor="black";this.w.Xa();a=!0}this.xa&&this.xa.focus()}return a}; -function Sd(a,b){!b&&a.w&&(a.zb?a.N.style.width=a.N.style.height="":a.w.style.width=a.w.style.height="");db(a,"notifyFullScreen("+b+")",!0)}function Ud(a,b){a.Vb=b;a.wa=!1;if(void 0===a.ia||a.ia.length!=a.Vb)a.ia=Array(a.Vb)}function Xd(a,b,c,d,e){d=a.F?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ca&&(208<=c&&236>c?e=a.Ca+0:28<=c&&72>c&&(e=a.Ca+1));a=a.qa[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]} +break}for(c=0;c>3)*this.ba;if(this.wc||sb(this.B,this.va,this.Na,3))1>1)),this.K=document.createElement("canvas"),this.K.width=b,this.K.height=c,this.Wa=this.K.getContext("2d"), +this.qa={},this.Ca=1<=a.oc?8:16,f=8>(7>4)*c)}return g} +Pd.prototype.Ea=function(){return!0};Pd.prototype.pa=function(a,b,c){var d=this;switch(b){case "fullScreen":return this.L[b]=c,this.w&&this.w.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1}; +Pd.prototype.Xa=function(){var a=!1;if(this.w){if(this.w.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Z/this.X;b>c&&(a=Math.round(c/b*100)+"%")}this.Ub?(this.N.style.width=a,this.N.style.width=a,this.N.style.display="block",this.N.style.margin="auto"):(this.w.style.width=a,this.w.style.height="auto");this.w.style.backgroundColor="black";this.w.Xa();a=!0}this.xa&&this.xa.focus()}return a}; +function Sd(a,b){!b&&a.w&&(a.Ub?a.N.style.width=a.N.style.height="":a.w.style.width=a.w.style.height="");db(a,"notifyFullScreen("+b+")",!0)}function Ud(a,b){a.Wb=b;a.wa=!1;if(void 0===a.ja||a.ja.length!=a.Wb)a.ja=Array(a.Wb)}function Xd(a,b,c,d,e){d=a.F?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ca&&(208<=c&&236>c?e=a.Ca+0:28<=c&&72>c&&(e=a.Ca+1));a=a.ra[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]} Ja(function(){for(var a=B(document,"pc8080","video"),b=0;bMissing <canvas> 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<=qa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ra.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");wa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Pd(d,e,h,f,c);ab(d,c)}}); -function Yd(a){y.call(this,"Debugger",a,Yd);this.style=Zd;this.ca=this.ya=this.K=0;this.X=U();this.Na=U();this.F=-1;this.w=[];this.ia=!1;this.fa=U();this.I=[];this.pa={};this.C=this.Z=this.H=[];$d(this);this.va=0;ae(this);this.Ca=[];be(this,a.messages);this.Da=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return sc(b,a)}):void 0===global.$&&(global.$=function(a){return sc(b,a)})}Wa(Yd); +function Yd(a){y.call(this,"Debugger",a,Yd);this.style=Zd;this.ca=this.ya=this.K=0;this.X=U();this.Na=U();this.F=-1;this.w=[];this.ja=!1;this.ga=U();this.I=[];this.qa={};this.C=this.Z=this.H=[];$d(this);this.va=0;ae(this);this.Ca=[];be(this,a.messages);this.Da=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return hc(b,a)}):void 0===global.$&&(global.$=function(a){return hc(b,a)})}Wa(Yd); var ce={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",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"},Zd=8080,de="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(" "), ee="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(" "),fe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),ge=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768], [21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617], @@ -120,92 +121,92 @@ ee="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CAL [5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62], [54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19, 18193,33],[65,128]],he={cpu:1,bus:64,mem:128,port:256,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};m=Yd.prototype; -m.Ka=function(a,b,c,d){this.B=b;this.b=c;this.u=a;(a=ec(a,"messages"))&&be(this,a);this.Ia=ge;ie(this,function(a){a:{var b=d.B.U,c=a[0],g=a=0,l=b.length;if(c){a=X(Y(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.ga;l=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,k=0;l--;){var n=b[g];n.type==c?k++||d.g("..."):(c=n.type,k=ub[c],n&&d.g(q(n.id)+" %"+q(g<>>e.ga;f!=e.B?e.U[h].Mb(f,b&65535,d):(e.U[h++].ub(f,b&255,d),e.U[h&e.J].ub(0,b>>8&255,d+1));c&&je(a,c);tc(this.b,!0)}};function U(a){return{D:a,Ga:!1}}function ke(a){return[a.D,a.Ga]}function le(a){return{D:a[0],Ga:a[1]}} -function Y(a,b,c){var d;c=(c?a.X:a.Na).D;if(void 0!==b){d=b=me(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=ma(fe,a.substr(b,1))));return c}function se(a,b){var c=0,d=te(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?q(d,c):"??"} -function te(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.O;break;case 1:c=d.P;break;case 8:c=Jc(d);break;case 2:c=d.R;break;case 3:c=d.S;break;case 9:c=Lc(d);break;case 4:c=d.T;break;case 5:c=d.V;break;case 10:c=I(d);break;case 6:c=d.W(I(d));break;case 11:c=d.da;break;case 12:c=d.M;break;case 13:c=Hc(d);break;case 14:c=Hc(d)&255|d.j<<8}}return c} +m.Ka=function(a,b,c,d){this.B=b;this.b=c;this.u=a;(a=ec(a,"messages"))&&be(this,a);this.Ia=ge;ie(this,function(a){a:{var b=d.B.U,c=a[0],g=a=0,l=b.length;if(c){a=X(Y(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.ha;l=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,k=0;l--;){var n=b[g];n.type==c?k++||d.g("..."):(c=n.type,k=ub[c],n&&d.g(r(n.id)+" %"+r(g<>>e.ha;f!=e.B?e.U[h].Mb(f,b&65535,d):(e.U[h++].vb(f,b&255,d),e.U[h&e.J].vb(0,b>>8&255,d+1));c&&je(a,c);tc(this.b,!0)}};function U(a){return{D:a,Ga:!1}}function ke(a){return[a.D,a.Ga]}function le(a){return{D:a[0],Ga:a[1]}} +function Y(a,b,c){var d;c=(c?a.X:a.Na).D;if(void 0!==b){d=b=me(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=ma(fe,a.substr(b,1))));return c}function se(a,b){var c=0,d=te(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?r(d,c):"??"} +function te(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.O;break;case 1:c=d.P;break;case 8:c=Jc(d);break;case 2:c=d.R;break;case 3:c=d.S;break;case 9:c=Lc(d);break;case 4:c=d.T;break;case 5:c=d.V;break;case 10:c=J(d);break;case 6:c=d.W(J(d));break;case 11:c=d.ea;break;case 12:c=d.M;break;case 13:c=Hc(d);break;case 14:c=Hc(d)&255|d.j<<8}}return c} function ue(a,b){b=me(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=re(b,c+1),0<=e&&(b=b.substr(0,c)+se(a,e)+b.substr(c+1+fe[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=Y(a,e))?(d=e+' "'+qe(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=Y(a,e))?(je(d),d=e+' "'+ -qe(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(U(this.b.M).D));if(this.ja&1073741824)this.xa.push(a);else if(!this.wa||a!=this.wa)if(this.wa=a,this.ja&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.gb=0;c.F-=c.b;c.b=0;tc(c)}}; -function cb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ja&g)!=g||a.message(b.Eb+"."+(null!=d?"outPort":"inPort")+"("+t(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))} -function ae(a){var b;if(sd(a)){if(!a.N||!a.N.length){a.N=Array(1E3);for(b=0;b>>d.ga],!1)}a.Z=["br"];if(void 0!==a.H)for(b=1;b>>d.ga],!0);a.H=["bw"];a.Va=0}m.Oa=function(a,b,c){var d=!0;c||Xe(this,a,b,!1,!0);if(a!=this.C){var e=X(b);if(-1===e)this.g("invalid address: "+Z(b.D)),d=!1;else{var f=this.B;f.U[e>>>f.ga].Oa(e&f.B,a==this.H)}}d&&(a.push(b),c?b.Ga=!0:(Ye(this,a,a.length-1,"set"),ae(this)));return d}; -function Xe(a,b,c,d,e){var f=!1;c=X(c);for(var h=1;h>>d.ga],b==a.H));g.Ga||ae(a);break}}return f}function Ze(a,b){for(var c=1;c>>d.ha],!1)}a.Z=["br"];if(void 0!==a.H)for(b=1;b>>d.ha],!0);a.H=["bw"];a.Va=0}m.Oa=function(a,b,c){var d=!0;c||Xe(this,a,b,!1,!0);if(a!=this.C){var e=X(b);if(-1===e)this.g("invalid address: "+Z(b.D)),d=!1;else{var f=this.B;f.U[e>>>f.ha].Oa(e&f.B,a==this.H)}}d&&(a.push(b),c?b.Ga=!0:(Ye(this,a,a.length-1,"set"),ae(this)));return d}; +function Xe(a,b,c,d,e){var f=!1;c=X(c);for(var h=1;h>>d.ha],b==a.H));g.Ga||ae(a);break}}return f}function Ze(a,b){for(var c=1;c>24,4);break;case 3:x=q(u.La(D,2),4);break;default:u="imm("+t(r)+")";break a}8086==u.style&&r&64?x="["+x+"]":r&16||(x=(u.style==Zd?"$":"0x")+x);u=x}else r& -16?(u=(p&3840)>>8,r=fe[u],8086==a.style&&p&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0>24,4);break;case 3:w=r(u.La(C,2),4);break;default:u="imm("+t(q)+")";break a}8086==u.style&&q&64?w="["+w+"]":q&16||(w=(u.style==Zd?"$":"0x")+w);u=w}else q& +16?(u=(p&3840)>>8,q=fe[u],8086==a.style&&p&64&&(6==u&&(q="HL"),q="["+q+"]"),u=q):q&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; function ff(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<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":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} function ne(a,b,c){var d;if(b){b=me(a,b);for(var e=0,f=!1,h=b,g=[],l=[],k=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;h=n+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function jf(a,b){if(b)return hf(a,b,a.pa[b]);var c=0;for(b in a.pa)hf(a,b,a.pa[b]),c++;return 0b[0]?1:a[0]>>0;for(b=0;b>>0,g=f.lc;if(e>=h&&e>=1;h=n+"b"+h;d>>=8}d="0x"+r(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function jf(a,b){if(b)return hf(a,b,a.qa[b]);var c=0;for(b in a.qa)hf(a,b,a.qa[b]),c++;return 0b[0]?1:a[0]>>0;for(b=0;b>>0,g=f.mc;if(e>=h&&e>8&255;case "C":d.P=g&255;break;case "D":d.R= -g&255;break;case "DE":d.R=g>>8&255;case "E":d.S=g&255;break;case "H":d.T=g&255;break;case "HL":d.T=g>>8&255;case "L":d.V=g&255;break;case "SP":d.da=g&65535;break;case "PC":F(d,g);a.X=U(d.M);break;case "PS":Fc(d,g);break;case "PSW":Fc(d,g&255|d.sa&-256);d.j=g>>8;break;case "CF":d.Y=g?d.Y|256:d.Y&255;break;case "PF":g?Pc(d)||(d.aa^=1):Pc(d)&&(d.aa^=1);break;case "AF":d.na=g?~d.aa&16|d.na&-17:d.aa&16|d.na&-17;break;case "ZF":d.Y=g?d.Y&-256:d.Y|255;break;case "SF":g?Sc(d)||(d.aa^=192):Sc(d)&&(d.aa^=192); -break;case "IF":d.sa=g?d.sa|512:d.sa&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}tc(d);a.g("updated registers:")}a.g(df(a));c&&(a.X=U(d.M),xe(a,Z(a.X.D)))}}function qf(a,b){b=ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ue(a,c[2])):ne(a,b,!0)}function rf(a,b,c){var d="t"!=b;c=gf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ba(c,function(){return hb(a,!0)&&a.jb(e,d,!1)},function(){tc(a.b);hb(a,!1)})} +g&255;break;case "DE":d.R=g>>8&255;case "E":d.S=g&255;break;case "H":d.T=g&255;break;case "HL":d.T=g>>8&255;case "L":d.V=g&255;break;case "SP":d.ea=g&65535;break;case "PC":F(d,g);a.X=U(d.M);break;case "PS":Fc(d,g);break;case "PSW":Fc(d,g&255|d.ta&-256);d.j=g>>8;break;case "CF":d.Y=g?d.Y|256:d.Y&255;break;case "PF":g?Pc(d)||(d.aa^=1):Pc(d)&&(d.aa^=1);break;case "AF":d.oa=g?~d.aa&16|d.oa&-17:d.aa&16|d.oa&-17;break;case "ZF":d.Y=g?d.Y&-256:d.Y|255;break;case "SF":g?Sc(d)||(d.aa^=192):Sc(d)&&(d.aa^=192); +break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}tc(d);a.g("updated registers:")}a.g(df(a));c&&(a.X=U(d.M),xe(a,Z(a.X.D)))}}function qf(a,b){b=ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ue(a,c[2])):ne(a,b,!0)}function rf(a,b,c){var d="t"!=b;c=gf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ba(c,function(){return fb(a,!0)&&a.jb(e,d,!1)},function(){tc(a.b);fb(a,!1)})} function xe(a,b,c,d){if(b=Y(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Y(a,c,!0);if(!d||d.Dg[0].indexOf("+"))){var k=g[0]+":";g[2]&&(k+=" "+g[2]);a.g(k)}g[3]&&(h=g[3],f=null);f=af(a,b,h,f);a.g(f);a.X=b;e-=b.D-l;c++}}} -function pe(a,b,c,d){if(c)if(b){0>a.F&&a.w.length&&(a.F=0);if(0>a.F||b!=a.w[a.F])a.w.splice(0,0,b),a.F=0;a.F--}else a.ia?b="end":b=a.w[a.F+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ia(b.substring(c,f))),c=f+1}}return a} -function $e(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ia&&(a.g("ended assemble at "+Z(a.fa.D)),a.X=a.fa,a.ia=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.wa=null;if(jb(a)&&0k||"z"ya.length&&(a.g("note: only "+ya.length+" available"),aa=ya.length);W-=aa;0>W&&(null==ya[ya.length-1].D?(aa=W+aa,W=0):W+=ya.length);var bd=[];"call"==Ee&& -(gb=1E5,bd=["CALL"]);for(void 0!==De&&a.g(aa+" instructions earlier:");0=ya.length&&(W=0);a.Wa=aa;Ge++;gb--}}Ge||(a.g("no "+Fe+"history available"),a.Wa=void 0)}else{var hc=Y(a,R);if(hc){var ic=0;na&&("l"==na.charAt(0)&&(na=na.substr(1)||Eb),ic=gf(a,na)>>>0,65536>4||1;Nf--&&0mc?String.fromCharCode(mc):".";kc--}Oa&&(Oa+="\n");Oa+=R+" "+Hb+(0==Gb?" "+dd:"")}Oa&&a.g(Oa);a.Na=hc}}}}break;case "e":if("else"==f[0])break;var nc=1,Je=255,Ke=a.W,Le=a.ka;"ew"==f[0]&&(nc=2,Je=65535,Ke=a.La,Le=a.Cb);var Me=nc<<1,Ne=f[1];if(null==Ne)a.g("edit memory commands:"), -a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var oc=Y(a,Ne);if(oc)for(var pc=2;pcjd;){for(var Pa=null,Sf=256;65536>Kb.D>>>0;){Pe.D=a.La(Kb,2);if(null==Kb.D||!Sf--)break;for(var Tf=a,qc=Pe,Qe=null,Lb=qc.D,Re=Lb,kd=1;6>=kd&&Lb;kd++){if(2a.F&&a.w.length&&(a.F=0);if(0>a.F||b!=a.w[a.F])a.w.splice(0,0,b),a.F=0;a.F--}else a.ja?b="end":b=a.w[a.F+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ia(b.substring(c,f))),c=f+1}}return a} +function $e(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ja&&(a.g("ended assemble at "+Z(a.ga.D)),a.X=a.ga,a.ja=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.wa=null;if(jb(a)&&0k||"z"ya.length&&(a.g("note: only "+ya.length+" available"),aa=ya.length);W-=aa;0>W&&(null==ya[ya.length-1].D?(aa=W+aa,W=0):W+=ya.length);var bd=[];"call"==Ee&& +(hb=1E5,bd=["CALL"]);for(void 0!==De&&a.g(aa+" instructions earlier:");0=ya.length&&(W=0);a.Wa=aa;Ge++;hb--}}Ge||(a.g("no "+Fe+"history available"),a.Wa=void 0)}else{var ic=Y(a,R);if(ic){var jc=0;na&&("l"==na.charAt(0)&&(na=na.substr(1)||Fb),jc=gf(a,na)>>>0,65536>4||1;Nf--&&0nc?String.fromCharCode(nc):".";lc--}Oa&&(Oa+="\n");Oa+=R+" "+Ib+(0==Hb?" "+dd:"")}Oa&&a.g(Oa);a.Na=ic}}}}break;case "e":if("else"==f[0])break;var oc=1,Je=255,Ke=a.W,Le=a.ma;"ew"==f[0]&&(oc=2,Je=65535,Ke=a.La,Le=a.Cb);var Me=oc<<1,Ne=f[1];if(null==Ne)a.g("edit memory commands:"), +a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var pc=Y(a,Ne);if(pc)for(var qc=2;qcjd;){for(var Pa=null,Sf=256;65536>Lb.D>>>0;){Pe.D=a.La(Lb,2);if(null==Lb.D||!Sf--)break;for(var Tf=a,rc=Pe,Qe=null,Mb=rc.D,Re=Mb,kd=1;6>=kd&&Mb;kd++){if(2\nLicense: GPL version 3 or later ");for(b=0;b\nLicense: GPL version 3 or later ");for(b=0;bBf){if(xf(d,this.X)){this.H=new Ic(this,"1.23.3","failsafe");xf(this.H)&&(Gf(this,d),a=2,uf(this.H));G(this.H,"timestamp",la());vf(this.H);var e=this.u&&!this.J;if(1==a||ra("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=wf(d)){var f=yf(d,"code"),h=yf(d,"data");f&&("ok"==f?xf(d,h):("error"== -f&&"no machine state"!=h?(this.ha("Error: "+h),"unable to verify user"==h&&(va("user",""),this.C=null)):this.g(f+": "+h),uf(d),xf(d)?(c=wf(d),e=!0):c=!1))}e&&Ff(this,c?d:null)}else 2==a&&d.clear()}else Ff(this);delete this.X;delete this.Z}e=Za(this.id);for(f=0;fa[1];a=a[2];this.ta=!0;this.A.ma=!0;var d=this.L.power;d&&(d.textContent="Shutdown");this.b&&(Hf(this,this.b,b,c,a),uc(this.b));this.fa&&(Gf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.w=0}; -function Gf(a,b){if(ra("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.C||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.qa;e.user=c;e.type="bug";e.data=d;oa("http://www.pcjs.org/api/v1/report",e,!0)}} -function sf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new Ic(a,"1.23.3"),h=new Ic(a,"1.23.3","validate"),g=la();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.23.3");G(f,"url",window?window.location.href:null);G(f,"browser",qa());a.b&&a.b.Ha&&(c&&a.b.ea(),d=a.b.Ha(b,c),"object"===typeof d&&G(f,a.b.id,d),c&&(a.b.A.ma=!1,!1===d&&(e=null)));for(var g=Za(a.id),l=0;lBf){if(xf(d,this.X)){this.H=new Ic(this,"1.23.3","failsafe");xf(this.H)&&(Gf(this,d),a=2,uf(this.H));H(this.H,"timestamp",la());vf(this.H);var e=this.u&&!this.J;if(1==a||ra("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=wf(d)){var f=yf(d,"code"),h=yf(d,"data");f&&("ok"==f?xf(d,h):("error"== +f&&"no machine state"!=h?(this.ia("Error: "+h),"unable to verify user"==h&&(va("user",""),this.C=null)):this.g(f+": "+h),uf(d),xf(d)?(c=wf(d),e=!0):c=!1))}e&&Ff(this,c?d:null)}else 2==a&&d.clear()}else Ff(this);delete this.X;delete this.Z}e=Za(this.id);for(f=0;fa[1];a=a[2];this.ua=!0;this.A.na=!0;var d=this.L.power;d&&(d.textContent="Shutdown");this.b&&(Hf(this,this.b,b,c,a),uc(this.b));this.ga&&(Gf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.w=0}; +function Gf(a,b){if(ra("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.C||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.ra;e.user=c;e.type="bug";e.data=d;oa("http://www.pcjs.org/api/v1/report",e,!0)}} +function sf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new Ic(a,"1.23.3"),h=new Ic(a,"1.23.3","validate"),g=la();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.23.3");H(f,"url",window?window.location.href:null);H(f,"browser",qa());a.b&&a.b.Ha&&(c&&a.b.fa(),d=a.b.Ha(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.A.na=!1,!1===d&&(e=null)));for(var g=Za(a.id),l=0;l>>f.ga;0>4)*u.la,z=void 0,N=void 0,V=void 0,R=void 0,na=u.ua,Eb=u.la;D?(z=p*r.ua,N=f*r.la,V=r.ua,R=r.la):(z=p*r.xb,N=f*r.yb,V=r.xb,R=r.yb);u.ua>r.ua&&(z*=2,V*=2);u.la>r.la&&(0==v&&(x+=r.la),Eb=r.la);D?D.drawImage(u.canvas,M,x,na,Eb,z,N,V,R):(z+=0,N+=0,r.H.drawImage(u.canvas,M,x,na,Eb,z,N,V,R))}l++}g++}f++}}d.wa=!0;l&&d.Wa&&d.H.drawImage(d.K, -0,0,d.J,d.ba-d.la,0,0,d.oc,d.uc)}else{g=d.va;l=g+d.Na;k=v=n=0;e=d.J;p=0;f=d.ba;r=h=0;D=d.Ia;u=(1<>8|(M&255)<<8);v>x&u,Xd(d,d.Ub,v++,k,N),x+=D;v>p&&(p=v);k=h&&(h=k+1)}g+=2;n++;if(v>=d.J&&(v=0,k++,k>d.ba))break}d.wa=!0;e>>f.ha;0>4)*u.da,z=void 0,N=void 0,V=void 0,R=void 0,na=u.la,Fb=u.da;C?(z=p*q.la,N=f*q.da,V=q.la,R=q.da):(z=p*q.yb,N=f*q.zb,V=q.yb,R=q.zb);u.la>q.la&&(z*=2,V*=2);u.da>q.da&&(0==v&&(w+=q.da),Fb=q.da);C?C.drawImage(u.canvas,G,w,na,Fb,z,N,V,R):(z+=0,N+=0,q.H.drawImage(u.canvas,G,w,na,Fb,z,N,V,R))}l++}g++}f++}}d.wa=!0;l&&d.Wa&&d.H.drawImage(d.K, +0,0,d.J,d.ba-d.da,0,0,d.uc,d.vc)}else{g=d.va;l=g+d.Na;k=v=n=0;e=d.J;p=0;f=d.ba;q=h=0;C=d.Ia;u=(1<>8|(G&255)<<8);v>w&u,Xd(d,d.Vb,v++,k,N),w+=C;v>p&&(p=v);k=h&&(h=k+1)}g+=2;n++;if(v>=d.J&&(v=0,k++,k>d.ba))break}d.wa=!0;eg.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2")); g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");oa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],k,n=/( [a-z]+=)(['"])(.*?)\2/g;k=n.exec(f);)l=0>l.indexOf(k[1])?l.replace(">",k[0]+">"):l.replace(new RegExp(k[1]+"(['\"])(.*?)\\1"),k[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, @@ -213,8 +214,8 @@ function Zf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e= function $f(a,b,c,d){function e(a){if(void 0===g){var b=h&&B(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--Kf||La(!0));l=!1}var h,g,l=!0;Kf++;Xa[a]={};try{if(h=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=k:p.appendChild(document.createTextNode(k));n.appendChild(p)}c|| (c="/versions/pc8080/1.23.3/components.xsl");k=function(d,g){g?Lf(c,null,null,!1,e,function(d,k){if(k)if(Ya(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Kf||La(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Kf||La(!0)):f("invalid machine element: "+ a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Lf(b,a,d,!0,e,k):Yf(b,null,a,d,!1,e,k)}else f("missing machine element: "+a)}catch(v){f(v.message)}return l}window.embedPC8080=function(a,b,c,d){La(!1);return $f(a,b,c,d)};window.enableEvents=La;window.sendEvent=Ma; -function ag(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?oa(b,null,!0,function(a,b){bg(b,d)}):bg(null,d)}else w("Error ("+c+") requesting "+a)} +function ag(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?oa(b,null,!0,function(a,b){bg(b,d)}):bg(null,d)}else x("Error ("+c+") requesting "+a)} function bg(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Xa[f],l={},k;for(k in g){var n=g[k],p=da(k);if("xml"==p){for(p=/[ \t]*]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[k]);){var v=d[2];v&&(g[v]||(n=n.replace(d[0],"")))}d=k=ca(k)}else"xsl"==p&&(e=k=ca(k));l[k]=n}a&&(l[k="css"]=a);b[2]&&(l[k="parms"]=b[2]);b[3]&&(l[k="state"]=b[3]);d&&e?(k=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+k+";"+c[2]+c[3],c=c.replace(/\u00A9/g, "©"),k=h,g=null,l="data:application/javascript,",l=wa("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),k&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=l,g.download=k,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+k+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(k?" ("+k+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n', -c+='
\n',c+="...\n",c+='