Added PC11 support for loading tapes remotely
This commit is contained in:
parent
aa131d5413
commit
961dce8f78
15 changed files with 993 additions and 441 deletions
|
|
@ -39,8 +39,9 @@ function pa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a
|
|||
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 va(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||
typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
function wa(a,b){var c,d={za:null,Ea:null,Rb:null,Qb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g=eval("("+b+")");d.Rb=g.load;d.Qb=g.exec;if(e=g.bytes)d.za=e;else if(e=g.words)for(d.za=Array(2*e.length),f=c=0;c<e.length;c++)d.za[f++]=e[c]&255,d.za[f++]=e[c]>>8&255;else if(e=g.data)for(d.za=Array(4*e.length),f=c=0;c<e.length;c++)d.za[f++]=e[c]&255,d.za[f++]=e[c]>>8&255,d.za[f++]=e[c]>>16&255,d.za[f++]=e[c]>>24&255;else d.za=g;d.Ea=g.symbols;d.za.length?1==d.za.length&&(w(d.za[0]),d=null):
|
||||
(w("Empty resource: "+a),d=null)}catch(h){w("Resource data error: "+h.message),d=null}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),d.za=Array(a.length),c=0;c<a.length;c++)d.za[c]=parseInt(a[c],16);return d}function ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}function xa(){return window?window.navigator.userAgent:""}function w(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;
|
||||
function wa(a,b){var c,d={Aa:null,Ea:null,Rb:null,Qb: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.Rb=g.load;d.Qb=g.exec;if(e=g.bytes)d.Aa=e;else if(e=g.words)for(d.Aa=Array(2*e.length),f=c=0;c<e.length;c++)d.Aa[f++]=e[c]&255,d.Aa[f++]=e[c]>>8&255;else if(e=g.data)for(d.Aa=Array(4*e.length),f=c=0;c<e.length;c++)d.Aa[f++]=
|
||||
e[c]&255,d.Aa[f++]=e[c]>>8&255,d.Aa[f++]=e[c]>>16&255,d.Aa[f++]=e[c]>>24&255;else d.Aa=g;d.Ea=g.symbols;d.Aa.length?1==d.Aa.length&&(w(d.Aa[0]),d=null):(w("Empty resource: "+a),d=null)}catch(h){w("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)){w("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Aa=e)}return d}
|
||||
function ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}function xa(){return window?window.navigator.userAgent:""}function w(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;
|
||||
function Aa(){if(null==za){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}za=a}return za}function Ba(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=xa();return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ea(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Fa(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}}var Ja={init:[],show:[],exit:[]},Ka=!1,La=!1,Ma=!0;function Na(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Oa(a){Ja.init.push(a)}
|
||||
|
|
@ -74,26 +75,26 @@ w:function(a,b){this.I&&jb(this.I,129)&&this.I.message("attempt to write "+u(b)+
|
|||
null!=this.H){var d=this.I;jc(d,this.H+a,2,d.C)&&d.ra(!0)}this.N?this.w(a,b,c):this.Wb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.C.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ha:function(a,b){this.u[a]=b;this.Pa=!0},eb:function(a,b){this.u[a]=b;this.Pa=!0},la:function(a,b){this.C.setUint16(a,b,!0);this.Pa=!0},na:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Pa=!0}};
|
||||
function xb(a,b,c){a.I=b;a.A=a.j=0;c&&((a.A=c.A)&&ic(a,hc,!1),(a.j=c.j)&&gc(a,hc,!1))}function kc(a,b){b?--a.j||(a.nb=a.N?a.w:a.Bb,a.Fc=a.N?a.G:a.Wb):--a.A||(a.lb=a.yb,a.Dc=a.Sb)}function gc(a,b,c){c&&a.j||(a.nb=!a.N&&b[1]||a.w,a.Fc=!a.N&&b[3]||a.G);if(c||void 0===c)a.Bb=b[1]||a.w,a.Wb=b[3]||a.G}function ic(a,b,c){c&&a.A||(a.lb=b[0]||a.J,a.Dc=b[2]||a.L);if(c||void 0===c)a.yb=b[0]||a.J,a.Sb=b[2]||a.L}function cc(a,b){b||(b=lc);ic(a,b,void 0);gc(a,b,void 0)}
|
||||
var lc=[],fc=[G.prototype.Y,G.prototype.fb,G.prototype.fa,G.prototype.wa],hc=[G.prototype.O,G.prototype.ja,G.prototype.ca,G.prototype.ma];if(qb)var ec=[G.prototype.M,G.prototype.ha,G.prototype.ba,G.prototype.la],dc=[G.prototype.P,G.prototype.eb,G.prototype.ea,G.prototype.na];
|
||||
function mc(a,b){z.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Sa=c;this.ha=Math.round(this.Y/1E4)/100;this.bb=this.ha*this.Sa;this.D.Aa=!1;this.D.Vb=!1;this.D.tb=a.autoStart;this.D.yc=!1;this.D.hb=!1;this.vb=this.O=0;this.wb=a.csStart;this.jb=a.csInterval;this.kb=a.csStop;this.w=[];this.Ha=this.cb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype;
|
||||
function mc(a,b){z.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Sa=c;this.ha=Math.round(this.Y/1E4)/100;this.bb=this.ha*this.Sa;this.D.za=!1;this.D.Vb=!1;this.D.tb=a.autoStart;this.D.yc=!1;this.D.hb=!1;this.vb=this.O=0;this.wb=a.csStart;this.jb=a.csInterval;this.kb=a.csStop;this.w=[];this.Ha=this.cb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype;
|
||||
l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.I=d;for(b=0;b<nc.length;b++)(c=this.N[nc[b]])&&this.A.qa(null,nc[b],c);this.F=ub(a,"ChipSet");a=Ac(a,"autoStart");null!=a&&(this.D.tb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.Ga=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Cc(this)}else this.reset();this.I?(a=this.I,a.g("Type ? for help with PC8080 Debugger commands"),a.La(),a.Ba&&(b=a.Ba,a.Ba=null,Dc(a,b))):this.g("No debugger detected")}Ec(this);return!0};l.Ka=function(a){return a?this.save():!0};l.tb=function(){return this.D.tb||!this.I&&void 0===this.N.run?(this.cb(!0),!0):!1};l.Bc=function(){return 0};
|
||||
function Cc(a){void 0===a.wb&&(a.wb=0);void 0===a.jb&&(a.jb=-1);void 0===a.kb&&(a.kb=-1);a.D.hb=0<=a.wb&&0<a.jb;a.D.hb&&(a.vb=0,a.O=a.wb-a.M)}function Fc(a,b){if(a.D.hb){var c=!1;a.vb=a.vb+a.Bc()|0;a.O-=b;0>=a.O&&(a.O+=a.jb,c=!0);0<=a.kb&&a.kb<=Gc(a)&&(a.jb=a.kb=-1,Cc(a),a.ra(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+t(a.vb))}}
|
||||
l.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.D.xa)a=!0;else{var b=null,c,h=db(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.D.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.D.xa);c++);c==h.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.D.ready?"powered yet":"ready yet"+(b.Fb?" (waiting for notification)":""))+".");a=!1}a&&(d.D.Aa?d.ra():d.cb())};
|
||||
l.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.D.xa)a=!0;else{var b=null,c,h=db(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.D.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.D.xa);c++);c==h.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.D.ready?"powered yet":"ready yet"+(b.Fb?" (waiting for notification)":""))+".");a=!1}a&&(d.D.za?d.ra():d.cb())};
|
||||
a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Hc(d,d.Sa<<1,!0)},c.textContent=this.bb.toFixed(2)+"Mhz",a=!0}return a};function Ic(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Jc(a,b){var c=1;b&&1<a.Sa&&a.K&&(c=a.K/a.ha);a.wa=Math.round(1E3/30);a.fa=Math.floor(a.Y/30*c);b||(a.P=a.fa);a.ja=0}function Gc(a){return a.M+a.G+a.L-a.b}function Bc(a){a.K=0;a.Ba=0;a.M=a.G=a.L=a.b=0;Cc(a);Hc(a,1)}
|
||||
function Hc(a,b,c){var d=!1;if(void 0!==b){.8>a.K/a.bb?b=1:d=!0;a.Sa=b;b=a.ha*a.Sa;if(a.bb!=b){a.bb=b;b=a.bb.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.A&&a.A.zb()}Ic(a,a.G);a.G=0;a.C=qa();a.J=0;Jc(a);return d}function Kc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Lc(a,b,c){0<=b&&b<a.w.length&&0>a.w[b][0]&&(c*=a.Y*a.Sa/1E3,a.w[b][0]=c+Mc(a))}function Mc(a,b){var c=a.L-=a.b;a.b=0;b&&(a.L=0);return c}
|
||||
l.cb=function(a){if(kb(this,!0)){if(!this.D.Aa){Hc(this);this.A&&this.A.start(this.C,Gc(this));this.D.Aa=!0;this.D.Vb=!0;this.F&&this.F.start();var b=this.N.run;b&&(b.textContent="Halt");this.A&&(this.A.La(!0),a&&this.A.zb(!0))}this.ja>=this.Y&&Jc(this,!0);this.ba=0;this.ea=qa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.C+=a,this.C>this.ea&&(this.C=this.ea)));try{do{for(var c,d=this.D.hb?1:this.fa,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.mb(c);c=Mc(this,!0);this.ba+=
|
||||
c;this.G+=c;Fc(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.P-=c;if(0>=this.P){this.P+=this.fa;15<=++this.Ba&&(this.A&&this.A.La(),this.Ba=0);break}}while(this.D.Aa)}catch(k){this.ra();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ha;this.J=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.J-this.ea;if(f=this.J-this.C)this.K=Math.round(this.G/(10*f))/
|
||||
100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.K<this.bb)-1E3>e&&(this.C-=e),e=0;this.ja+=this.ba;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.mb=function(){return 0};l.ra=function(a){lb(this,!0);Mc(this);Ic(this,this.G);this.G=0;if(this.D.Aa){this.D.Aa=!1;this.F&&this.F.stop();var b=this.N.run;b&&(b.textContent="Run")}this.D.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d<c.G.length;d++)Nc(c.G[d],b);a.A.La(b)}}
|
||||
function Oc(a){this.Zd=+a.model||8080;mc.call(this,a,1E6);this.la=Pc;Bc(this);this.D.complete=this.D.Nd=!1;this.na=0;this.ca=[];this.ma=0;Qc(this)}A(Oc,mc);function Rc(a,b){a.ca.push(b)}l=Oc.prototype;l.reset=function(){this.D.Aa&&this.ra();Qc(this);Bc(this);this.D.error=!1;this.parent.reset.call(this)};function Qc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.pa=0;I(a,a.ma);Sc(a,0);a.j=0}function Tc(a,b){a.ma=b;I(a,b)}
|
||||
l.cb=function(a){if(kb(this,!0)){if(!this.D.za){Hc(this);this.A&&this.A.start(this.C,Gc(this));this.D.za=!0;this.D.Vb=!0;this.F&&this.F.start();var b=this.N.run;b&&(b.textContent="Halt");this.A&&(this.A.La(!0),a&&this.A.zb(!0))}this.ja>=this.Y&&Jc(this,!0);this.ba=0;this.ea=qa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.C+=a,this.C>this.ea&&(this.C=this.ea)));try{do{for(var c,d=this.D.hb?1:this.fa,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.mb(c);c=Mc(this,!0);this.ba+=
|
||||
c;this.G+=c;Fc(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.P-=c;if(0>=this.P){this.P+=this.fa;15<=++this.Ba&&(this.A&&this.A.La(),this.Ba=0);break}}while(this.D.za)}catch(k){this.ra();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ha;this.J=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.J-this.ea;if(f=this.J-this.C)this.K=Math.round(this.G/(10*f))/
|
||||
100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.K<this.bb)-1E3>e&&(this.C-=e),e=0;this.ja+=this.ba;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.mb=function(){return 0};l.ra=function(a){lb(this,!0);Mc(this);Ic(this,this.G);this.G=0;if(this.D.za){this.D.za=!1;this.F&&this.F.stop();var b=this.N.run;b&&(b.textContent="Run")}this.D.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d<c.G.length;d++)Nc(c.G[d],b);a.A.La(b)}}
|
||||
function Oc(a){this.Zd=+a.model||8080;mc.call(this,a,1E6);this.la=Pc;Bc(this);this.D.complete=this.D.Nd=!1;this.na=0;this.ca=[];this.ma=0;Qc(this)}A(Oc,mc);function Rc(a,b){a.ca.push(b)}l=Oc.prototype;l.reset=function(){this.D.za&&this.ra();Qc(this);Bc(this);this.D.error=!1;this.parent.reset.call(this)};function Qc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.pa=0;I(a,a.ma);Sc(a,0);a.j=0}function Tc(a,b){a.ma=b;I(a,b)}
|
||||
l.Bc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.pa+this.R+Uc(this)|0};l.save=function(){var a=new J(this);a.set(0,[this.i,this.S,this.T,this.U,this.V,this.W,this.Z,this.pa,this.R,Uc(this)]);a.set(1,[this.j,this.M,this.Sa]);a.set(2,Fb(this.u));return a.data()};
|
||||
l.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Z=b[6];this.pa=b[7]&65535;I(this,b[8]);Sc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Hc(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.M){for(var f=0,g=Array(b.M),h=0;h<e.length-1;)for(var k=e[h++],n=e[h++];k--;)g[f++]=n;e=g}f=b.X[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.qa=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.N[b]=c;this.na++;a=!0;break;default:a=this.parent.qa.call(this,a,b,c)}return a};function Vc(a){return a.S<<8|a.T}function Wc(a,b){a.S=b>>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function K(a){return a.W<<8|a.Z}
|
||||
function Zc(a,b){a.W=b>>8&255;a.Z=b&255}function I(a,b){a.R=b&65535}function $c(a){return a.da&256?1:0}function ad(a,b){a.da=a.da&255|b}function bd(a){return rb[a.ga&255]?4:0}function cd(a){return(a.ga^a.ya)&16?16:0}function dd(a){return a.da&255?0:64}function ed(a){return a.ga&128?128:0}function Uc(a){return a.ua&-214|ed(a)|dd(a)|cd(a)|bd(a)|$c(a)}function Sc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2}
|
||||
function fd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function gd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function hd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function id(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function jd(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function Ed(a,b){return a.ga=a.da=a.ya=a.i|b}function L(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255}
|
||||
function Fd(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function Gd(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function M(a){var b=a.aa(a.R);I(a,a.R+1);return b}function O(a){var b=a.u.ab(a.R);I(a,a.R+2);return b}function P(a){var b=a.u.ab(a.pa);a.pa=a.pa+2&65535;return b}function Q(a,b){a.pa=a.pa-2&65535;a.u.Jb(a.pa,b)}
|
||||
function Hd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ua&=-513;a.j&=-257;a.la[199|b<<3].call(a)}return a.j&256?(Mc(a),!1):!0}function Id(a,b){a.j|=1<<b;a.ua&512&&Mc(a)}function R(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(nb(a,"Value for "+b+" is invalid"),a.ra()),c=!a.D.Aa||a.D.yc?t(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))}
|
||||
l.La=function(a){this.na&&(a||!this.D.Aa||this.D.yc)&&(R(this,"A",this.i),R(this,"B",this.S),R(this,"C",this.T),R(this,"BC",Vc(this),4),R(this,"D",this.U),R(this,"E",this.V),R(this,"DE",Xc(this),4),R(this,"H",this.W),R(this,"L",this.Z),R(this,"HL",K(this),4),R(this,"SP",this.pa,4),R(this,"PC",this.R,4),a=Uc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent=
|
||||
this.D.Aa&&this.K?this.K.toFixed(2)+"Mhz":"Stopped"};l.mb=function(a){this.D.complete=!0;var b=this.D.Nd=this.I&&Jd(this.I),c=a?this.D.Vb?0:1:-1;this.D.Vb=!1;this.L=this.b=a;if(Hd(this)){do{if(b){if(Kd(this.I,this.R,c)){this.ra();break}c=1}this.la[M(this)].call(this)}while(0<this.b)}return this.D.complete?this.L-this.b:void 0===this.D.complete?0:-1};Oa(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Oc(d);gb(d,c)}});function Ld(){this.b-=4}
|
||||
function Hd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ua&=-513;a.j&=-257;a.la[199|b<<3].call(a)}return a.j&256?(Mc(a),!1):!0}function Id(a,b){a.j|=1<<b;a.ua&512&&Mc(a)}function R(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(nb(a,"Value for "+b+" is invalid"),a.ra()),c=!a.D.za||a.D.yc?t(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))}
|
||||
l.La=function(a){this.na&&(a||!this.D.za||this.D.yc)&&(R(this,"A",this.i),R(this,"B",this.S),R(this,"C",this.T),R(this,"BC",Vc(this),4),R(this,"D",this.U),R(this,"E",this.V),R(this,"DE",Xc(this),4),R(this,"H",this.W),R(this,"L",this.Z),R(this,"HL",K(this),4),R(this,"SP",this.pa,4),R(this,"PC",this.R,4),a=Uc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent=
|
||||
this.D.za&&this.K?this.K.toFixed(2)+"Mhz":"Stopped"};l.mb=function(a){this.D.complete=!0;var b=this.D.Nd=this.I&&Jd(this.I),c=a?this.D.Vb?0:1:-1;this.D.Vb=!1;this.L=this.b=a;if(Hd(this)){do{if(b){if(Kd(this.I,this.R,c)){this.ra();break}c=1}this.la[M(this)].call(this)}while(0<this.b)}return this.D.complete?this.L-this.b:void 0===this.D.complete?0:-1};Oa(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Oc(d);gb(d,c)}});function Ld(){this.b-=4}
|
||||
function Md(){I(this,O(this));this.b-=10}function Nd(){I(this,P(this));this.b-=10}function Od(){var a=O(this);Q(this,this.R);I(this,a);this.b-=17}
|
||||
var Pc=[Ld,function(){Wc(this,O(this));this.b-=10},function(){this.va(Vc(this),this.i);this.b-=7},function(){Wc(this,Vc(this)+1);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=id(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|a>>8;ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Vc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Vc(this));this.b-=7},function(){Wc(this,Vc(this)-1);this.b-=
|
||||
5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;ad(this,a);this.b-=4},Ld,function(){Yc(this,O(this));this.b-=10},function(){this.va(Xc(this),this.i);this.b-=7},function(){Yc(this,Xc(this)+1);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|
|
||||
|
|
@ -139,7 +140,7 @@ function Vd(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")")
|
|||
" ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e<b.length;e++)a.A[e]=aa(b[e],16);Wd(a)}}
|
||||
function Wd(a){if(!mb(a))if(!a.w)F(a);else if(a.A&&a.u){a.j||(a.j=a.A.length);if(a.A.length!=a.j)nb(a,"ROM size ("+t(a.A.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else{var b;b=a.C;if(yb(a.u,b,a.j,bc)){var c;for(c=0;c<a.A.length;c++)Db(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.j,h=[],k=d.C>>>f.ia;0<g&&k<f.X.length;)h.push(f.X[k++]),g-=f.Ja;f=d.u;d=d.j;g=0;for(e>>>=
|
||||
f.ia;0<d&&e<f.X.length;){k=h[g++];if(!k)break;f.X[e++]=k;d-=f.Ja}}delete a.A}}F(a)}}Oa(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ud(d);gb(d,c)}});
|
||||
function Xd(a){z.call(this,"RAM",a,Xd);this.Ea=this.j=null;this.G=a.addr;this.K=a.size;this.F=a.load;this.w=a.exec;this.C=!1;this.A=a.file;this.J=ea(this.A);if(this.A){a=this.A;var b=fa(this.J);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;va(a,null,!0,function(a,b,f){f?c.ka("Unable to load RAM resource (error "+f+": "+a+")"):(cb(c.fb,a,b),(a=wa(a,b))?(c.j=a.za,c.Ea=a.Ea,null==c.F&&null!=a.Rb&&(c.F=a.Rb),null==c.w&&null!=a.Qb&&(c.w=a.Qb)):c.A=null,
|
||||
function Xd(a){z.call(this,"RAM",a,Xd);this.Ea=this.j=null;this.G=a.addr;this.K=a.size;this.F=a.load;this.w=a.exec;this.C=!1;this.A=a.file;this.J=ea(this.A);if(this.A){a=this.A;var b=fa(this.J);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;va(a,null,!0,function(a,b,f){f?c.ka("Unable to load RAM resource (error "+f+": "+a+")"):(cb(c.fb,a,b),(a=wa(a,b))?(c.j=a.Aa,c.Ea=a.Ea,null==c.F&&null!=a.Rb&&(c.F=a.Rb),null==c.w&&null!=a.Qb&&(c.w=a.Qb)):c.A=null,
|
||||
Yd(c))})}}A(Xd);var Zd=[0,5];Xd.prototype.Ra=function(a,b,c,d){this.u=b;this.b=c;this.I=d;Yd(this)};Xd.prototype.Ga=function(){return!0};Xd.prototype.Ka=function(){return!0};
|
||||
function Yd(a){!a.C&&a.K&&yb(a.u,a.G,a.K,1)&&(a.C=!0);if(!mb(a)){if(!a.C)w("No RAM allocated");else if(a.A){if(!a.j||!a.u)return;var b=a.G;null!==a.F&&(b=a.F);for(var c=0;c<a.j.length;c++)Db(a.u,b+c,a.j[c]);if(null!==a.w){if(256==a.w){for(c=0;c<Zd.length;c++)Db(a.u,Zd[c],118);Rc(a.b,function(a){return function(b){if(0<=Zd.indexOf(b)){var c=!1,d=a.b,e=a.I;if(5==b)switch(c=!0,d.T){case 2:$d(a,String.fromCharCode(d.V));break;case 9:for(var k=Xc(d),n="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;n+=
|
||||
String.fromCharCode(q)}$d(a,n);break;default:c=!1}c?Nd.call(d):e&&(a.g("\nCP/M vector "+u(b)),I(d,b),e.ra());b=!0}else b=!1;return b}}(a))}Tc(a.b,a.w)}delete a.j}F(a)}}Xd.prototype.reset=function(){};function $d(a,b){b=b.replace(/\r/g,"");a.Ia&&(a.Ia.value+=b,a.Ia.scrollTop=a.Ia.scrollHeight)}Oa(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Xd(d);gb(d,c)}});
|
||||
|
|
@ -214,14 +215,14 @@ function zf(a,b){b=De(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Nb(b,c+1
|
|||
function hb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ta&h)!=h||a.message(b.eb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))}
|
||||
function Le(a){var b;if(Jd(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=Y();a.fa=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.K=[]}l.cb=function(a){if(!Af(this))return!1;this.b.cb(a);return!0};
|
||||
l.mb=function(a,b,c){if(!Af(this))return!1;this.J=0;a||Jd(this)&&Kd(this,this.b.R,0);try{var d=this.b.mb(a);0<d&&(this.J+=d,Ic(this.b,d,!0),Fc(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.J=0,nb(this.b,e.stack||e.message))}!1!==c&&Ec(this.b);this.La(b||!1);return 0<this.J};l.ra=function(a){this.b&&this.b.ra(a)};l.La=function(a){void 0===a&&(a=!0);this.M=Y(this.b.R);a&&1!=this.Y?Bf(this):Cf(this)};
|
||||
function Af(a){var b;if(b=a.b&&mb(a.b))b=a.b,b.D.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!lb(a.b)?(a=a.b,a.D.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ga=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ka=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Le(this);this.ba=this.na=0;this.la=null;this.J=0;this.M=Y(this.b.R);this.D.Aa=!1;Df(this);a||this.La()};
|
||||
l.save=function(){var a=new J(this);a.set(0,uf(this.M));a.set(1,uf(this.ca));a.set(2,[this.w,this.P,this.ta]);a.set(3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=vf(a[b++]),this.ca=vf(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.ta|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.D.Aa=!0;this.pb=a;this.qb=b};
|
||||
l.stop=function(a,b){if(this.D.Aa){this.D.Aa=!1;this.J=b-this.qb;if(!this.Y){b="stopped";if(this.J){a-=this.pb;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";Jd(this)&&(b+=this.ba+" opcodes, ",this.na-=this.ba,this.ba=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else jb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.La(!0);this.zb();Df(this,this.b.R)}};function Jd(a){return 1<a.F.length||!!a.ja}
|
||||
function Af(a){var b;if(b=a.b&&mb(a.b))b=a.b,b.D.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!lb(a.b)?(a=a.b,a.D.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ga=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ka=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Le(this);this.ba=this.na=0;this.la=null;this.J=0;this.M=Y(this.b.R);this.D.za=!1;Df(this);a||this.La()};
|
||||
l.save=function(){var a=new J(this);a.set(0,uf(this.M));a.set(1,uf(this.ca));a.set(2,[this.w,this.P,this.ta]);a.set(3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=vf(a[b++]),this.ca=vf(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.ta|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.D.za=!0;this.pb=a;this.qb=b};
|
||||
l.stop=function(a,b){if(this.D.za){this.D.za=!1;this.J=b-this.qb;if(!this.Y){b="stopped";if(this.J){a-=this.pb;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";Jd(this)&&(b+=this.ba+" opcodes, ",this.na-=this.ba,this.ba=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else jb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.La(!0);this.zb();Df(this,this.b.R)}};function Jd(a){return 1<a.F.length||!!a.ja}
|
||||
function Kd(a,b,c){var d=a.b;if(0<c&&(a.ja&&!--a.ja||jc(a,b,1,a.F)))return!0;0<=c&&a.K.length&&(a.ba++,b=Bb(a.u,b),null!=b&&(a.K[b][1]++,b=a.L[a.fa],b.H=d.R,b.Qa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Sb(a,b,c){a.g("break on input from port "+u(b)+": "+t(c));a.ra(!0)}function Wb(a,b,c){a.g("break on output to port "+u(b)+": "+t(c));a.ra(!0)}
|
||||
function Ke(a){var b,c;a.F=["bp"];if(a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;kc(d.X[Se(c)>>>d.ia],!1)}a.O=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=a.u,kc(d.X[Se(c)>>>d.ia],!0);a.C=["bw"];a.Xa=0}l.$a=function(a,b,c){var d=!0;c||Ef(this,a,b,!1,!0);if(a!=this.F){var e=Se(b);if(-1===e)this.g("invalid address: "+Z(b.H)),d=!1;else{var f=this.u;f.X[e>>>f.ia].$a(e&f.u,a==this.C)}}d&&(a.push(b),c?b.Qa=!0:(Ff(this,a,a.length-1,"set"),Le(this)));return d};
|
||||
function Ef(a,b,c,d,e){var f=!1;c=Se(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Se(h)&&(!d||h.Qa)){f=!0;h.Qa||e||Ff(a,b,g,"cleared");b.splice(g,1);b!=a.F&&(d=a.u,kc(d.X[c>>>d.ia],b==a.C));h.Qa||Le(a);break}}return f}function Gf(a,b){for(var c=1;c<b.length;c++)Ff(a,b,c);return b.length-1}function Ff(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.H)+(d?" "+d:c.Ec?' "'+c.Ec+'"':""))}
|
||||
function Df(a,b){if(void 0!==b)jc(a,b,1,a.F,!0),a.Y=0;else for(b=1;b<a.F.length;b++){var c=a.F[b];if(c.Qa){if(!Ef(a,a.F,c,!0))break;b=0}}}
|
||||
function jc(a,b,c,d,e){var f=!1;if(!a.Xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Qa)for(var k=Se(h),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.Qa&&(Ef(a,d,h,!0),e=!0);if(p=h.Id){for(var f=!1,q=0;q<p.length;q++)if(!Hf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.D.Aa||(f=!0)}if(f){e||Ff(a,d,g,"hit");break}}}a.Xa--;return f}
|
||||
function jc(a,b,c,d,e){var f=!1;if(!a.Xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Qa)for(var k=Se(h),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.Qa&&(Ef(a,d,h,!0),e=!0);if(p=h.Id){for(var f=!1,q=0;q<p.length;q++)if(!Hf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.D.za||(f=!0)}if(f){e||Ff(a,d,g,"hit");break}}}a.Xa--;return f}
|
||||
function If(a,b,c,d){for(var e=Y(b.H),f=a.aa(b,1),g=a.Ha[f],h="",k=(8086!=a.style?Oe:Pe)[g[0]],n=g.length-1,p=0,q,x=1;x<=n;x++){var v="";q=g[x];if(void 0!==q&&!(q&16384&&a.style==Je)){var r=q&240;if(r){var y=q&15;y?p=y:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{v=a;r=q;y=b;switch(r&15){case 1:y=t(v.aa(y,1),2);break;case 2:y=t(v.aa(y,1)<<24>>24,4);break;case 3:y=t(v.ab(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Je?"$":"0x")+y);v=y}else r&16?
|
||||
(v=(q&3840)>>8,r=Qe[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0<h.length&&(h+=",");h+=v||"???"}}}f="";g=Z(e.H)+" ";if(-1!==e.H&&-1!==b.H){do if(f+=t(a.aa(e,1),2),null==e.H)break;while(e.H!=b.H)}g+=ma(f,10);g=g+(q&32768?"*":" ")+ma(k,7);h&&(g+=" "+h);c&&(g=ma(g,40)+";"+c,g=a.b.D.hb?g+("cycles="+Gc(a.b).toString()+" cs="+t(a.b.vb)):g+(null!=d?"="+d.toString():""));return g}
|
||||
function Jf(a,b){switch(b){case "IF":a=a.b.ua&512;break;case "SF":a=ed(a.b);break;case "ZF":a=dd(a.b);break;case "AF":a=cd(a.b);break;case "PF":a=bd(a.b);break;case "CF":a=$c(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Kf(a,b){return Qe[b]+"="+yf(a,b)+" "}function Lf(a){return Kf(a,7)+Kf(a,8)+Kf(a,9)+Kf(a,10)+Kf(a,11)+Jf(a,"IF")+Jf(a,"SF")+Jf(a,"ZF")+Jf(a,"AF")+Jf(a,"PF")+Jf(a,"CF")}l.xc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
|
|
@ -245,7 +246,7 @@ da){for(T in sb)if(f[1]==T){var Ye=a.wa[T];Ye?(f.shift(),f.shift(),Ye(f)):a.g("n
|
|||
Ib&&ua!=a.fa;){var cf=Ga[ua++];if(null==cf.H)break;var Jb=Y(cf.H),lg=ia--,df=If(a,Jb,"history",lg);(!md.length||0<=df.indexOf(md[0]))&&a.g(df);Jb.Mb&&(ua+=Jb.Mb,Ib-=Jb.Mb,ia-=Jb.Mb);ua>=Ga.length&&(ua=0);a.gb=ia;bf++;Ib--}}bf||(a.g("no "+af+"history available"),a.gb=void 0)}else{var oc=Te(a,X);if(oc){var pc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Eb),pc=Ee(a,ta)>>>0,65536<pc&&(pc=65536));for(var Kb="",qc="dd"==da?4:"dw"==da?2:1,rc=qc*pc||128,mg=rc+15>>4||1;mg--&&0<rc;){var sc=0,nd=0,Lb,od="",
|
||||
ef="",X=Z(oc.H);for(Lb=16;0<Lb&&0<rc;Lb--){var tc=a.aa(oc,1),sc=sc|tc<<(nd++<<3);nd==qc&&(od+=t(sc,2*qc),od+=1==qc?9==Lb?"-":" ":" ",sc=nd=0);ef+=32<=tc&&128>tc?String.fromCharCode(tc):".";rc--}Kb&&(Kb+="\n");Kb+=X+" "+od+(Lb?"":" "+ef)}Kb&&a.g(Kb);a.Va=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(uc=2,ff=65535,gf=a.ab,hf=a.Jb);var jf=uc<<1,kf=f[1];if(null==kf)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 vc=Te(a,kf);if(vc)for(var wc=2;wc<f.length;wc++){var Mb=Ce(a,f[wc]);if(void 0===Mb){a.g("unrecognized value: "+f[wc]);break}Mb&~ff&&a.g("warning: "+t(Mb)+" exceeds "+uc+"-byte value");var ng=gf.call(a,vc);a.g("changing "+Z(vc.H)+" from "+t(ng,jf,!0)+" to "+t(Mb,jf,!0));hf.call(a,vc,Mb,uc)}}break;case "f":Of(a,f[1]);break;case "g":a:{var lf=f[1],og=b;if(void 0!==lf){var pd=Te(a,lf,!0);if(!pd)break a;wf(a,pd,og);a.$a(a.F,pd,!0)}a.cb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
|
||||
case "h":a:{var qd;if(a.D.Aa)qd="halting",a.ra();else{if(lb(a,!0))break a;qd="already halted"}c||a.g(qd)}break;case "i":if("if"==f[0]){var rd;var Nb=b.substr(2),Nb=na(Nb);Ce(a,Nb)?(c||a.g("true: "+Nb),rd=!0):(c||a.g("false: "+Nb),rd=!1);rd||(d=!1);break}if("int"==f[0]){var xc;var pg=f[1];if(a.b.ua&512){var sd=Ce(a,pg);null==sd?xc=!1:(a.g("requesting interrupt level "+sd),Id(a.b,sd),xc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),xc=!1;xc||(d=!1);break}var td=f[1];if(td&&"?"!=td){var ud=
|
||||
case "h":a:{var qd;if(a.D.za)qd="halting",a.ra();else{if(lb(a,!0))break a;qd="already halted"}c||a.g(qd)}break;case "i":if("if"==f[0]){var rd;var Nb=b.substr(2),Nb=na(Nb);Ce(a,Nb)?(c||a.g("true: "+Nb),rd=!0):(c||a.g("false: "+Nb),rd=!1);rd||(d=!1);break}if("int"==f[0]){var xc;var pg=f[1];if(a.b.ua&512){var sd=Ce(a,pg);null==sd?xc=!1:(a.g("requesting interrupt level "+sd),Id(a.b,sd),xc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),xc=!1;xc||(d=!1);break}var td=f[1];if(td&&"?"!=td){var ud=
|
||||
Ee(a,td);if(void 0!==ud){var qg=Rb(a.u,ud);a.g(u(ud)+": "+ca(qg))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var rg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var vd=0,mf=Y(),Ob=Y(a.b.pa);for(a.g("stack trace for "+Z(Ob.H));10>vd;){for(var Za=null,sg=256;65536>Ob.H>>>0;){mf.H=a.ab(Ob,2);if(null==Ob.H||!sg--)break;for(var tg=a,yc=mf,nf=
|
||||
null,Pb=yc.H,of=Pb,wd=1;6>=wd&&Pb;wd++){if(2<wd){yc.H=Pb;var zc=If(tg,yc);if(0<=zc.indexOf("CALL")){var pf=zc.indexOf(" ");if(Pb+(zc.indexOf(" ",pf+1)-pf-1)/2==of){nf=zc;break}}}Pb--}yc.H=of;if(Za=nf)break}if(!Za||null==Za)break;var qf=null;if("ks"==rg){var rf=Za.match(/[0-9A-F]+$/);rf&&(qf=Qf(a,rf[0]))}Za=ma(Za,50)+" ;"+(qf||"stack="+Z(Ob.H));a.g(Za);vd++}vd||a.g("no return addresses found")}break;case "l":"ln"==f[0]&&Qf(a,f[1],!0);break;case "m":a:{var Ha,Ia=null,N=f[1];"?"==N&&(N=void 0);if(void 0!==
|
||||
N){var Ra=0;if("all"==N)Ra=1878917119,N=null;else if("on"==N)Ia=!0,N=null;else if("off"==N)Ia=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ha in sb)if(N==Ha){Ra=sb[Ha];Ia=!!(a.ta&Ra);break}if(!Ra){a.g("unknown message category: "+N);break a}}if(Ra)if("on"==f[2])a.ta|=Ra,Ia=!0;else if("off"==f[2]&&(a.ta&=~Ra,Ia=!1,1073741824==Ra)){for(var xd=0;xd<a.ma.length;xd++)a.g(a.ma[xd]);a.ma=[]}}var ug=0,Qb="";for(Ha in sb)if(!N||N==Ha){var vg=!!(a.ta&sb[Ha]);if(null===Ia||Ia==vg)Qb&&(Qb+=
|
||||
|
|
|
|||
Loading…
Reference in a new issue