More PC8080 structural fixes

This commit is contained in:
Jeff Parsons 2016-04-20 14:02:11 -07:00
commit 28e4eabd8d
14 changed files with 75 additions and 54 deletions

View file

@ -156,8 +156,8 @@ Z.prototype.start=function(){for(var a in this.Y)if("cpu"!=a)for(var b=0;b<this.
function wb(a){var b=null,c;for(c in a.Y)for(var d=0;d<a.Y[c].length;d++){var e=a.Y[c][d];if(e){if(!K(e)){K(e,function(a){return function(){wb(a)}}(a));return}"cpu"==c?b=e:e.ha&&e.ha(!0,a)}}a.X();a.l("C1Pjs v1.21.7\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.ha(!0,a)}
x(function(){for(var a=G(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=E(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var n=d.modules[m];if(!m){if("cpu"!=n.type)break;k=n.start;l=n.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=ra(n.refID,d.id)){var y=n.type;void 0===g[y]&&(g[y]=[]);g[y].push(e);e.ba&&void 0!==n.start&&e.ba(h,n.start,n.end,g.cpu[0])}else{u('no component for <module refid="'+n.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(e=ra("debugger",d.id))g["debugger"]=[e],e.ba&&e.ba(h,k,l,g.cpu[0]);k=new Z(d,g);if(l=ra("panel",d.id))if(g.panel=[l],l.gb){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<B.length;d++)m=B[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.$a=l.$a,e.l=l.l,e.gb=l.gb)}F(k,c);wb(k)}});var xb=0;function yb(a,b,c,d,e,g){e("Loading "+a+"...");t(a,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):Ab(k,a,b,c,d,e,g)})}
function Ab(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){D[c]&&b&&(D[c][b]=a);var k=b;k&&0>k.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';"object"==typeof resources&&(k=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(y){k=null,a=y.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?Bb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Ab(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){D[c]&&b&&(D[c][b]=a);var k=b;k&&0>k.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';"object"==typeof resources&&(k=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,
"$1c1pjs$2"));k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(y){k=null,a=y.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?Bb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Bb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");t(e,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);Bb(a,b,c)}})}else c(a,null)}
function Cb(a,b,c){function d(a){if(void 0===h){var b=g&&G(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=da(a))}function e(a){d("Error: "+a);k&&(--xb||z(!0));k=!1}var g,h,k=!0;xb++;D[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var m=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=l:n.appendChild(document.createTextNode(l));m.appendChild(n)}c||(c=

View file

@ -116,8 +116,8 @@ Y.prototype.reset=function(a){var b=null,c;for(c in this.M)for(var d=0;d<this.M[
Y.prototype.J=function(a,b,c){switch(b){case "reset":return this.A[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.M[b]?a.M[b][0]:null}function Za(a){var b=null,c;for(c in a.M)for(var d=0;d<a.M[c].length;d++){var f=a.M[c][d];if(f){if(!J(f)){J(f,function(a){return function(){Za(a)}}(a));return}"cpu"==c?b=f:f.$&&f.$(!0,a)}}a.N();a.F("C1Pjs v1.21.7\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.$(!0,a)}
y(function(){for(var a=I(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=G(c),f,g={},k,h=0,l=0,m=0;m<d.modules.length;m++){var n=d.modules[m];if(!m){if("cpu"!=n.type)break;h=n.start;l=n.end;k=Array(l+1-h);for(f=h;f<k.length;f++)k[f]=0}if(f=F(n.refID,d.id)){var u=n.type;void 0===g[u]&&(g[u]=[]);g[u].push(f);f.X&&void 0!==n.start&&f.X(k,n.start,n.end,g.cpu[0])}else{t('no component for <module refid="'+n.refID+'">');return}}if(void 0===k){t('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(f=F("debugger",d.id))g["debugger"]=[f],f.X&&f.X(k,h,l,g.cpu[0]);h=new Y(d,g);if(l=F("panel",d.id))if(g.panel=[l],l.ya){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;d<C.length;d++)m=C[d],f&&m.id.indexOf(f)||g.push(m);d=g;for(g=0;g<d.length;g++)f=d[g],f!=l&&(f.wa=l.wa,f.F=l.F,f.ya=l.ya)}H(h,c);Za(h)}});var Z=0;function $a(a,b,c,d,f,g){f("Loading "+a+"...");r(a,function(k,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),g(h,null)):ab(h,a,b,c,d,f,g)})}
function ab(a,b,c,d,f,g,k){function h(a,g){if(g)k(g,null);else{if(c){E[c]&&b&&(E[c][b]=a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){h=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?f?bb(a,g,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
function ab(a,b,c,d,f,g,k){function h(a,g){if(g)k(g,null);else{if(c){E[c]&&b&&(E[c][b]=a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,
"$1c1pjs$2"));h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){h=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?f?bb(a,g,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
function bb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");r(f,function(g,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+f);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],k);bb(a,b,c)}})}else c(a,null)}
function db(a,b,c){function d(a){if(void 0===k){var b=g&&I(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=da(a))}function f(a){d("Error: "+a);h&&(--Z||A(!0));h=!1}var g,k,h=!0;Z++;E[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var m=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=l:n.appendChild(document.createTextNode(l));m.appendChild(n)}c||(c="/versions/c1pjs/1.21.7/components.xsl");