First batch of pdp11.js code adapted but totally untested

This commit is contained in:
Jeff Parsons 2016-09-05 11:05:40 -07:00
commit 100779e30a
22 changed files with 2697 additions and 1273 deletions

View file

@ -708,7 +708,7 @@ function fr(a,b){var c=0,d=gr(a,b);if(void 0!==d)switch(b){case 0:case 1:case 2:
function gr(a,b){var c;if(0<=b){var d=a.F;switch(b){case 0:c=d.G&255;break;case 1:c=d.I&255;break;case 2:c=d.M&255;break;case 3:c=d.H&255;break;case 4:c=d.G>>8&255;break;case 5:c=d.I>>8&255;break;case 6:c=d.M>>8&255;break;case 7:c=d.H>>8&255;break;case 8:c=d.G&65535;break;case 9:c=d.I&65535;break;case 10:c=d.M&65535;break;case 11:c=d.H&65535;break;case 12:c=I(d)&65535;break;case 13:c=d.P&65535;break;case 14:c=d.K&65535;break;case 15:c=d.J&65535;break;case 22:c=K(d)&65535;break;case 23:c=zd(d);break;
case 16:c=d.Xa.Z;break;case 17:c=d.va.Z;break;case 18:c=d.ta.Z;break;case 19:c=d.vb.Z;break;default:if(80286==a.F.ja)32==b&&(c=d.Za);else if(80386<=a.F.ja)switch(b){case 24:c=d.G;break;case 25:c=d.I;break;case 26:c=d.M;break;case 27:c=d.H;break;case 28:c=I(d);break;case 29:c=d.P;break;case 30:c=d.K;break;case 31:c=d.J;break;case 32:c=d.Za;break;case 33:c=d.li;break;case 34:c=d.ue;break;case 35:c=d.Qd;break;case 20:c=d.Nb.Z;break;case 21:c=d.Ob.Z;break;case 56:c=K(d)}}}return c}
function hr(a,b){b=$q(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=er(b,c+1),0<=e&&(b=b.substr(0,c)+fr(a,e)+b.substr(c+1+vq[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(d=e+' "'+Jq(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=Zq(a,e))?(Uq(a,d),d=e+
' "'+Jq(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m=iq.prototype;m.message=function(a,b){b&&(a+=" at "+Sq(jq(this,K(this.F),this.F.va.Z))+" (%"+r(this.F.Ha)+")");if(!this.Pa||a!=this.Pa)if(this.Pa=a,this.wc&-2147483648&&(this.Wb(),a+=" (cpu halted)"),this.O(a),this.F){var c=this.F;c.Y.nf=0;c.fb-=c.A;c.A=0;Wc(c)}};
' "'+Jq(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m=iq.prototype;m.message=function(a,b){b&&(a+=" at "+Sq(jq(this,K(this.F),this.F.va.Z))+" (%"+r(this.F.Ha)+")");if(!this.Pa||a!=this.Pa)if(this.Pa=a,this.wc&-2147483648&&(this.Wb(),a+=" (cpu halted)"),this.O(a),this.F){var c=this.F;c.fb-=c.A;c.A=0;c.Y.nf=0;Wc(c)}};
function nk(a,b,c,d){var e,f;if(!d&&(d=A(a,1)&&0>pq.indexOf(b),!d)){var g=oq[b];g&&(d=A(a,g)?!0:524288==g&&A(a,g=1048576))}d&&(e=a.F.G>>8&255,f=a.F.M&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Ab[b])&&g[e]||"")&&(g=" "+hr(a,g)),a.message("INT "+t(b)+": AH="+t(e)+" at "+Iq(c-2-a.F.va.Aa,a.F.va.Z)+g));return d}
function qb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.wc&h)==h)h=null,null!=e&&(h=a.F.va.Z,e-=a.F.va.Aa),a.message(b.zd+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+t(d):"")+")"+(null!=g?": "+t(g):"")+(null!=e?" at "+Iq(e,h):""))}m.jh=function(){this.O("Type ? for help with PCx86 Debugger commands");this.qd();if(this.gb){var a=this.gb;this.gb=null;nq(this,a)}};
function lq(a,b){var c;if(Wf(a)){if(!a.ia||!a.ia.length){a.ia=Array(1E3);for(c=0;c<a.ia.length;c++)a.ia[c]=jq(a);a.Fa=0;b||a.O("instruction history buffer allocated")}if(!a.W||!a.W.length)for(a.W=Array(256),c=0;c<a.W.length;c++)a.W[c]=[c,0]}else a.ia&&a.ia.length&&!b&&a.O("instruction history buffer freed"),a.Fa=0,a.ia=[],a.W=[]}m.Le=function(a){if(!ir(this))return!1;this.F.Le(a);return!0};