Save machine finally works
This commit is contained in:
parent
c69f2ee51f
commit
0e3de68273
11 changed files with 1573 additions and 1505 deletions
|
|
@ -1,17 +1,17 @@
|
|||
(function(){var f;function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function p(a){return"0x"+n(a,2)}function q(a){return"0x"+n(a,4)}var aa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ba(a){return a.replace(/[&<>"']/g,function(a){return aa[a]})}var ca=Date.now||function(){return+new Date};
|
||||
(function(){var f;function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function p(a){return"0x"+n(a,2)}function r(a){return"0x"+n(a,4)}var aa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ba(a){return a.replace(/[&<>"']/g,function(a){return aa[a]})}var ca=Date.now||function(){return+new Date};
|
||||
function t(a,b,c){var d=0,e=null;if("object"==typeof resources&&(e=resources[a]))c&&(b?c.call(b,a,e,d,void 0):c(a,e,d,void 0));else{var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(d=g.status||-1),c&&(b?c.call(b,a,e,d,void 0):c(a,e,d,void 0)))};g.open("GET",a,!0);g.send()}}
|
||||
function u(a){window&&window.alert(a)}function v(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function da(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function ea(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||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);g=!0}}var w={init:[],show:[],exit:[]},fa=!1,ga=!0;function ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){w.init.push(a)}
|
||||
function ia(a){if(ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function y(a){!ga&&a?(ga=!0,fa&&ja("init")):ga=a}function ja(a){w[a]&&ia(w[a])}ha("onload",function(){fa=!0;ia(w.init)});ha("onpageshow",function(){ia(w.show)});ha(v("Opera")||v("iOS")?"onunload":"onbeforeunload",function(){ia(w.exit)});
|
||||
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.rb=this.id.substr(0,b),this.qb=this.id.substr(b+1)):this.qb=this.id;this[a]=c;this.C={Za:!1,Ba:!1,jb:!1,M:!1,Ca:!1};this.cb=null;this.C.Ca=!1;this.H={};this.u=null;this.la=d||0;A.push(this)}var ka=void 0;
|
||||
if(window){ka||(ka=window.location.search.substr(1));for(var la,ma=/\+/g,na=/([^&=]+)=?([^&]*)/g;la=na.exec(ka);)la[1].replace(ma," "),la[2].replace(ma," ")}function oa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}function B(a){var b;b||(b=z);a.prototype=oa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var A=[],C={};
|
||||
function pa(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<A.length;c++)if(A[c].id===a)return A[c]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
|
||||
function E(a,b){for(var c=F(b.parentNode,"c1pjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,g=0;g<e.length;g++){var h=e[g];if(h.nodeType===document.ELEMENT_NODE){var k=h.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case "c1pjs-binding":(k=D(h))&&k.binding&&a.T(k.type,k.binding,h,k.value),m=l.length}}}}
|
||||
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
if(window){ka||(ka=window.location.search.substr(1));for(var la,ma=/\+/g,na=/([^&=]+)=?([^&]*)/g;la=na.exec(ka);)la[1].replace(ma," "),la[2].replace(ma," ")}function oa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}function B(a){var b;b||(b=z);a.prototype=oa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var A=[],D={};
|
||||
function pa(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<A.length;c++)if(A[c].id===a)return A[c]}return null}function E(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
|
||||
function F(a,b){for(var c=G(b.parentNode,"c1pjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,g=0;g<e.length;g++){var h=e[g];if(h.nodeType===document.ELEMENT_NODE){var k=h.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case "c1pjs-binding":(k=E(h))&&k.binding&&a.T(k.type,k.binding,h,k.value),m=l.length}}}}
|
||||
function G(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},T:function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.gb=this.H[b]=c,c.value="",this.l=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.$a=function(a,b,c){this.l(a,"notice",c)}),!0;default:return!1}},log:function(){},l:function(){},status:function(a){this.l(this.qb+": "+a)},$a:function(a,b){b||u(a)},X:function(a){this.C.Ca||(this.C.Za=!1!==a,this.C.Za&&(a=this.cb,this.cb=null,a&&a()))}};function G(a,b){if(a.u){a===a.u?b|=0:b=b||a.la;var c=a.u.la&b;return!!b&&c===b||!!(c&a.u.Re)}return!1}function I(a,b){if(a.C.jb)return a.C.Ba&&(a.C.Ba=!1),a.C.jb=!1;if(a.C.Ca)return a.l(a.toString()+" error"),!1;a.C.Ba=b;return a.C.Ba}
|
||||
this.$a=function(a,b,c){this.l(a,"notice",c)}),!0;default:return!1}},log:function(){},l:function(){},status:function(a){this.l(this.qb+": "+a)},$a:function(a,b){b||u(a)},X:function(a){this.C.Ca||(this.C.Za=!1!==a,this.C.Za&&(a=this.cb,this.cb=null,a&&a()))}};function H(a,b){if(a.u){a===a.u?b|=0:b=b||a.la;var c=a.u.la&b;return!!b&&c===b||!!(c&a.u.Re)}return!1}function I(a,b){if(a.C.jb)return a.C.Ba&&(a.C.Ba=!1),a.C.jb=!1;if(a.C.Ca)return a.l(a.toString()+" error"),!1;a.C.Ba=b;return a.C.Ba}
|
||||
function J(a,b){a.C.Ba&&(b?a.C.jb=!0:void 0===b&&a.l(a.toString()+" busy"));return a.C.Ba}function K(a,b){b&&(a.C.Za?b():a.cb=b);return a.C.Za}function qa(a,b){a.C.Ca=!0;a.$a(b)}function ra(a){z.call(this,"C1PPanel",a);this.C.M=!1}B(ra);ra.prototype.T=function(a,b,c,d){return this.J&&this.J.T(a,b,c,d)||this.s&&this.s.T(a,b,c,d)||this.b&&this.b.T(a,b,c,d)||this.u&&this.u.T(a,b,c,d)?!0:z.prototype.T.call(this,a,b,c,d)};
|
||||
ra.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.s=L(b,"cpu"),this.b=L(b,"keyboard"),this.u=L(b,"debugger"),sa())};function sa(){for(var a=!1,b=F(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),g=pa(e.id);g||(a=!0,g=new ra(e));E(g,d);a&&g.X()}}x(sa);
|
||||
ra.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.s=L(b,"cpu"),this.b=L(b,"keyboard"),this.u=L(b,"debugger"),sa())};function sa(){for(var a=!1,b=G(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=E(d),g=pa(e.id);g||(a=!0,g=new ra(e));F(g,d);a&&g.X()}}x(sa);
|
||||
function ta(a){z.call(this,"C1PCPU",a);ua(this);this.C.M=!1;this.C.ma=!1;this.Ta=a.autoStart;this.Ra=0;this.Ob=1;this.eb=2;this.speed=this.Ra;this.Ja=30;this.Ia=5;this.Ma=8;this.Sa=["Slow","Fast","Max"];this.ib=["(1Mhz)","(up to "+this.Ma+"Mhz)","(unlimited)"];this.P=[];this.K=[];this.oa=65536;this.pa=0;this.da=65536;this.ia=0;this.Qa=32;this.bb=2;this.Nb=1;this.o=[this.yc,this.Sd,this.Je,this.m,this.m,this.Ud,this.oc,this.m,this.Xd,this.Rd,this.nc,this.m,this.m,this.Od,this.lc,this.m,this.xc,this.Td,
|
||||
this.m,this.m,this.m,this.Vd,this.pc,this.m,this.Bc,this.Qd,this.m,this.m,this.m,this.Pd,this.mc,this.m,this.pd,this.hc,this.m,this.m,this.uc,this.jc,this.ce,this.m,this.Zd,this.gc,this.be,this.m,this.tc,this.dc,this.$d,this.m,this.vc,this.ic,this.m,this.m,this.m,this.kc,this.de,this.m,this.te,this.fc,this.m,this.m,this.m,this.ec,this.ae,this.m,this.je,this.cd,this.m,this.m,this.m,this.ed,this.Ld,this.m,this.Wd,this.bd,this.Kd,this.m,this.od,this.Zc,this.Id,this.m,this.zc,this.dd,this.m,this.m,this.m,
|
||||
this.fd,this.Md,this.m,this.Dc,this.ad,this.m,this.m,this.m,this.$c,this.Jd,this.m,this.ke,this.yb,this.m,this.m,this.m,this.Ab,this.he,this.m,this.Yd,this.xb,this.ge,this.m,this.nd,this.ub,this.ee,this.m,this.Ac,this.zb,this.m,this.m,this.m,this.Bb,this.ie,this.m,this.ve,this.wb,this.m,this.m,this.m,this.vb,this.fe,this.m,this.m,this.ze,this.m,this.m,this.He,this.Be,this.Ee,this.m,this.Yc,this.m,this.Ne,this.m,this.Ge,this.we,this.De,this.m,this.qc,this.Ae,this.m,this.m,this.Ie,this.Ce,this.Fe,this.m,
|
||||
|
|
@ -29,7 +29,7 @@ function Da(a){var b=ca(),c=a.kb;a.$&&(c=Math.round(c*a.$/a.ra));c=c-(b-a.lb);if
|
|||
f.va=function(){if(I(this,!0)){this.C.ma||(M(this),this.J&&this.J.start(),this.C.ma=!0,this.H.run&&(this.H.run.innerHTML="Halt"),this.ca());1E6<=this.Aa&&Aa(this,!0);this.$=0;this.lb=ca();try{do{this.step(this.ja);var a=this.L-this.D;this.U+=a;this.$+=a;this.L=this.D=0;this.Z-=this.ja;0>=this.Z&&(this.Z+=this.Xa,this.hb());this.V-=this.ja;0>=this.V&&(this.V+=this.Wa,Ba(this));this.R-=this.ja;if(0>=this.R){this.R+=this.ra;break}}while(this.C.ma)}catch(b){this.aa();this.update();I(this,!1);qa(this,
|
||||
b.stack||b.message);return}setTimeout(function(a){return function(){a.va()}}(this),Da(this))}else this.update(),this.J&&this.J.stop(this.Oa,this.U)};
|
||||
f.step=function(a){var b=!0;this.b=this.g=-1;var c;if(c=a&&this.u)c=this.u,c=0<c.sa.length||0<c.wa.length||0<c.ya.length;this.L=this.D=a;do{a=this.a[this.f];var d;if(d=c){d=this.u;var e=a,g=!1;Ea(d,this.f,d.sa,"exec")?g=!0:(d.L++,d.B[e][1]++,d.xa[d.La++]=d.s.f,d.La>=d.xa.length&&(d.La=0));d=!!g}if(d){b=void 0;this.aa();break}this.f++;this.o[a].call(this);if(0<=this.b){this.b>=this.oa&&this.b<=this.pa&&ya(this,this.b,this.f);if(d=c)d=this.u,e=!1,Ea(d,this.b,d.wa,"read")&&(e=!0),d=!!e;if(d){b=!1;this.aa();
|
||||
break}this.b=-1}else if(0<=this.g){this.g>=this.da&&this.g<=this.ia&&za(this,this.g,this.f);if(d=c){d=this.u;var e=this.g,g=this.a[this.g],h=!1;(g&255)!=g&&(d.l("invalid value at "+q(e)+": "+g),h=!0);Ea(d,e,d.ya,"write")&&(h=!0);d=!!h}if(d){b=!1;this.aa();break}this.g=-1}this.D-=this.fb[a]}while(0<this.D);return b};function Fa(a){a.R=0;a.L-=a.D;a.D=0}f.aa=function(){J(this,!0);this.L-=this.D;this.D=0;this.C.ma&&(this.C.ma=!1,this.H.run&&(this.H.run.innerHTML="Run"))};
|
||||
break}this.b=-1}else if(0<=this.g){this.g>=this.da&&this.g<=this.ia&&za(this,this.g,this.f);if(d=c){d=this.u;var e=this.g,g=this.a[this.g],h=!1;(g&255)!=g&&(d.l("invalid value at "+r(e)+": "+g),h=!0);Ea(d,e,d.ya,"write")&&(h=!0);d=!!h}if(d){b=!1;this.aa();break}this.g=-1}this.D-=this.fb[a]}while(0<this.D);return b};function Fa(a){a.R=0;a.L-=a.D;a.D=0}f.aa=function(){J(this,!0);this.L-=this.D;this.D=0;this.C.ma&&(this.C.ma=!1,this.H.run&&(this.H.run.innerHTML="Run"))};
|
||||
f.update=function(){this.hb();Ba(this)};function Ga(a){return a.C.ma?a.U+a.L-a.D:0}f.S=function(a){return this.a[a]};f.W=function(a,b){this.a[a]=b};function Ca(a){var b=a.c&256?1:0,b=b|(a.j&255?0:2),b=b|((a.v&255^a.A^a.v>>1)&128?64:0),b=b|(a.i&128?128:0);return a.B&60|b}
|
||||
function Ha(a){a.B|=8;a.o[97]=a.$b;a.o[101]=a.bc;a.o[105]=a.Zb;a.o[109]=a.Wb;a.o[113]=a.ac;a.o[117]=a.cc;a.o[121]=a.Yb;a.o[125]=a.Xb;a.o[225]=a.pe;a.o[229]=a.re;a.o[233]=a.oe;a.o[237]=a.le;a.o[241]=a.qe;a.o[245]=a.se;a.o[249]=a.ne;a.o[253]=a.me}function Ia(a){a.B&=-9;a.o[97]=a.yb;a.o[101]=a.Ab;a.o[105]=a.xb;a.o[109]=a.ub;a.o[113]=a.zb;a.o[117]=a.Bb;a.o[121]=a.wb;a.o[125]=a.vb;a.o[225]=a.Gb;a.o[229]=a.Ib;a.o[233]=a.Fb;a.o[237]=a.Cb;a.o[241]=a.Hb;a.o[245]=a.Jb;a.o[249]=a.Eb;a.o[253]=a.Db}
|
||||
function P(a,b,c){var d=a.c&256?1:0,e=(b&15)+(c&15)+d;10<=e&&(e=e+6&15|16);e+=(b&240)+(c&240);a.A=b^c;a.v=e;a.i=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.j=b+c+d&255;a.D--;return e&255}function Q(a,b,c){var d=a.c&256?0:1,e=(b&15)-(c&15)-d;0>e&&(e=(e-6&15)-16);e+=(b&240)-(c&240);0>e&&(e-=96);a.i=a.j=(a.c=b-c-d)&255;a.A=b^c;a.v=a.c;a.c^=256;a.D--;return e&255}function ua(a){a.h=0;a.w=0;a.F=0;a.G=256;a.B=0;a.i=0;a.j=0;a.A=0;a.v=0;a.c=0;a.f=0;a.b=-1;a.g=-1;a.ta=0;a.U=a.L=a.D=0}
|
||||
|
|
@ -74,51 +74,51 @@ f.Hb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<
|
|||
f.Jb=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.se=function(){this.b=this.a[this.f++]+this.w&255;this.h=Q(this,this.h,this.a[this.b])};f.kd=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ue=function(){Ha(this)};
|
||||
f.Eb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ne=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
|
||||
f.Db=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.me=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.h=Q(this,this.h,this.a[this.b])};f.hd=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};
|
||||
f.Je=function(){var a;a=this.a[this.f++];switch(a){case 0:this.l("HALT");this.aa();break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,n(this.h,2)).replace(/%X/g,n(this.w,2)).replace(/%Y/g,n(this.F,2));this.l(b);Fa(this);break;default:this.f-=2,this.l("undefined opSim: "+p(a)+" at "+q(this.f)),this.aa()}};f.m=function(){var a=this.a[--this.f];this.l("undefined opcode: "+p(a)+" at "+q(this.f));this.aa()};
|
||||
x(function(){for(var a=F(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ta(d);E(d,c)}});function R(a){z.call(this,"C1PROM",a);this.b=this.a=null;this.g=a.size;if(this.o=a.image){a=this.o;var b;b=this.o;var c="",d=b.lastIndexOf(".");0<=d&&(c=b.substr(d+1).toLowerCase());b=c;"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.o+"&format=bytes");t(a,this,this.A)}}B(R);
|
||||
R.prototype.ba=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a!=this.g?qa(this,"computer-specified ROM size ("+q(a)+") does not match component-specified size ("+q(this.g)+")"):(d&&(this.s=d,N(d,b,c,this,this.W)),Ja(this))};R.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};R.prototype.W=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.pb,!0);var c=a-this.v;this.a[this.v+c]=this.b?this.b[c]:0}};
|
||||
f.Je=function(){var a;a=this.a[this.f++];switch(a){case 0:this.l("HALT");this.aa();break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,n(this.h,2)).replace(/%X/g,n(this.w,2)).replace(/%Y/g,n(this.F,2));this.l(b);Fa(this);break;default:this.f-=2,this.l("undefined opSim: "+p(a)+" at "+r(this.f)),this.aa()}};f.m=function(){var a=this.a[--this.f];this.l("undefined opcode: "+p(a)+" at "+r(this.f));this.aa()};
|
||||
x(function(){for(var a=G(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new ta(d);F(d,c)}});function R(a){z.call(this,"C1PROM",a);this.b=this.a=null;this.g=a.size;if(this.o=a.image){a=this.o;var b;b=this.o;var c="",d=b.lastIndexOf(".");0<=d&&(c=b.substr(d+1).toLowerCase());b=c;"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.o+"&format=bytes");t(a,this,this.A)}}B(R);
|
||||
R.prototype.ba=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a!=this.g?qa(this,"computer-specified ROM size ("+r(a)+") does not match component-specified size ("+r(this.g)+")"):(d&&(this.s=d,N(d,b,c,this,this.W)),Ja(this))};R.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};R.prototype.W=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.pb,!0);var c=a-this.v;this.a[this.v+c]=this.b?this.b[c]:0}};
|
||||
R.prototype.A=function(a,b,c){if(c)this.l('Error loading ROM "'+a+'" ('+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes;e?this.b=e:this.b=d}catch(g){this.l('Error processing ROM "'+a+'": '+g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.b=Array(a.length),b=0;b<a.length;b++)this.b[b]=parseInt(a[b],16);Ja(this)}};
|
||||
function Ja(a){if(!K(a))if(!a.o)a.X();else if(a.b&&a.a){var b=a.b.length;if(b!=a.g)qa(a,"ROM image size ("+q(b)+") does not match component-specified size ("+q(a.g)+")");else{for(var c=0;c<b;c++)a.a[a.v+c]=a.b[c];a.X()}}}x(function(){for(var a=F(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new R(d);E(d,c)}});function Ka(a){z.call(this,"C1PRAM",a)}B(Ka);Ka.prototype.ba=function(a){this.a=a;this.X()};
|
||||
x(function(){for(var a=F(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ka(d);E(d,c)}});
|
||||
function Ja(a){if(!K(a))if(!a.o)a.X();else if(a.b&&a.a){var b=a.b.length;if(b!=a.g)qa(a,"ROM image size ("+r(b)+") does not match component-specified size ("+r(a.g)+")");else{for(var c=0;c<b;c++)a.a[a.v+c]=a.b[c];a.X()}}}x(function(){for(var a=G(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new R(d);F(d,c)}});function Ka(a){z.call(this,"C1PRAM",a)}B(Ka);Ka.prototype.ba=function(a){this.a=a;this.X()};
|
||||
x(function(){for(var a=G(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Ka(d);F(d,c)}});
|
||||
function La(a){z.call(this,"C1PKeyboard",a);this.C.M=!1;this.Ia=a.model;this.da=8;this.fb=10;this.Xa=13;this.ia=27;this.Oa=this.da;this.Wa=this.fb;this.Ja=this.Xa;this.$=this.ia;this.L=241;this.Z=224;this.Sa=3;this.Ta=15;this.K=1;this.D=[];this.D["break"]=this.Z;this.D.esc=this.$;this.D["ctrl-c"]=this.Sa;this.D["ctrl-o"]=this.Ta;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
|
||||
29680;this.b[54]=29184;this.b[38]=29424;this.b[55]=28928;this.b[39]=29168;this.b[56]=26368;this.b[40]=26608;this.b[57]=26112;this.b[41]=26352;this.b[48]=25856;this.b[58]=25600;this.b[42]=25840;this.b[45]=25344;this.b[61]=25584;this.b[46]=22272;this.b[62]=22512;this.b[108]=22016;this.b[76]=22256;this.b[92]=22256;this.b[111]=21760;this.b[79]=22E3;this.b[this.Oa]=22E3;this.b[this.Wa]=21504;this.b[this.Ja]=21248;this.b[119]=18176;this.b[87]=18416;this.b[101]=17920;this.b[69]=18160;this.b[114]=17664;this.b[82]=
|
||||
17904;this.b[116]=17408;this.b[84]=17648;this.b[121]=17152;this.b[89]=17392;this.b[117]=16896;this.b[85]=17136;this.b[105]=16640;this.b[73]=16880;this.b[115]=14080;this.b[83]=14320;this.b[100]=13824;this.b[68]=14064;this.b[102]=13568;this.b[70]=13808;this.b[103]=13312;this.b[71]=13552;this.b[104]=13056;this.b[72]=13296;this.b[106]=12800;this.b[74]=13040;this.b[107]=12544;this.b[75]=12784;this.b[91]=12784;this.b[120]=9984;this.b[88]=10224;this.b[99]=9728;this.b[67]=9968;this.b[118]=9472;this.b[86]=
|
||||
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.L]=1536;this.b[this.$]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}B(La);
|
||||
f=La.prototype;f.reset=function(){this.Na(this.Ia);this.g=this.K;this.oa=0;this.o=[this.K,0,0,0,0,0,0,0];this.P=[];if(this.v)for(var a in this.v)isNaN(+a)||this.v[a]&&clearTimeout(this.v[a]);this.v=[];this.Aa=this.A=0;this.pa=-1;this.ja=this.o;this.qa=this.V=0;this.B=""};
|
||||
f.T=function(a,b,c){if(void 0===this.H[b])switch(b){case "keyDown":return this.H[b]=c,c.onkeydown=function(a){return function(b){return Ma(a,b,!0)}}(this),!0;case "keyPress":return this.H[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.B="";a.g&8?a.g&=-9:c=!Na(a,b);a.u&&G(a.u,a.u.za)&&a.u.message("keyPress("+p(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.H[b]=c,c.onkeyup=function(a){return function(b){return Ma(a,b,
|
||||
f.T=function(a,b,c){if(void 0===this.H[b])switch(b){case "keyDown":return this.H[b]=c,c.onkeydown=function(a){return function(b){return Ma(a,b,!0)}}(this),!0;case "keyPress":return this.H[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.B="";a.g&8?a.g&=-9:c=!Na(a,b);a.u&&H(a.u,a.u.za)&&a.u.message("keyPress("+p(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.H[b]=c,c.onkeyup=function(a){return function(b){return Ma(a,b,
|
||||
!1)}}(this),!0;case "break":return this.H[b]=c,c.onclick=function(a){return function(){a.J&&a.J.reset(!0)}}(this),!0;default:if(void 0!==this.D[b])return this.H[b]=c,c.onclick=function(a,b,c){return function(){a.s&&a.s.ca();return!Na(a,c)}}(this,b,this.D[b]),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.ra=b;this.ib=c-b+1;this.lb=this.ra+this.ib;d&&(this.s=d,N(d,b,c,this,this.W));this.X()};f.Na=function(a){this.O=a;this.R=255;600!=this.O&&(this.R=0,this.l("updated keyboard model: "+this.O))};
|
||||
f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.u=L(b,"debugger"))};f.X=function(){this.U=(this.kb=v("iOS"))||v("Android");this.u&&G(this.u,this.u.za)&&this.u.message("mobile keyboard support: "+(this.U?"true":"false")+" ("+window.navigator.userAgent+")");z.prototype.X.call(this)};function Oa(a,b){var c=b?100:250;a.s&&a.s.ta&&(c/=a.s.ta);return c}function Pa(a,b){!a.A||void 0!==b&&b==a.A||(a.u&&G(a.u,a.u.za)&&a.u.message("autoClear("+p(a.A)+")"),clearTimeout(a.v[a.A]),T(a,a.A,!1,4))}
|
||||
f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.u=L(b,"debugger"))};f.X=function(){this.U=(this.kb=v("iOS"))||v("Android");this.u&&H(this.u,this.u.za)&&this.u.message("mobile keyboard support: "+(this.U?"true":"false")+" ("+window.navigator.userAgent+")");z.prototype.X.call(this)};function Oa(a,b){var c=b?100:250;a.s&&a.s.ta&&(c/=a.s.ta);return c}function Pa(a,b){!a.A||void 0!==b&&b==a.A||(a.u&&H(a.u,a.u.za)&&a.u.message("autoClear("+p(a.A)+")"),clearTimeout(a.v[a.A]),T(a,a.A,!1,4))}
|
||||
function U(a,b,c){a.B=b;Qa(a,c||300)}function Qa(a,b){if(0<a.B.length){var c=a.B.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.B=a.B.substr(1);Na(a,c)}0<a.B.length&&setTimeout(function(a){return function(){Qa(a,b)}}(a),b)}
|
||||
function Ma(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.Aa=b);16==b?(a.g&=-5,c&&(a.g|=4),b+=224,e=!1):18==b?(a.g&=-3,c&&(a.g|=2),b+=224,e=!1):b==a.L-224?(a.g&=-65,c&&(a.g|=64),b+=224,e=!1):20==b?(c=!c,a.g&=~a.K,c&&(a.g|=a.K),b+=224,e=!1):91==b?(a.g&=-9,c&&(a.g|=8),e=!1,d=!0):d=9==b?e=!1:b==a.ia||b==a.da?c?!Na(a,b):!1:!0;e&&(a.g&=-9,a.U||b!=a.Aa||Pa(a));void 0===d&&(d=!T(a,b,c,2));a.u&&G(a.u,a.u.za)&&a.u.message("key"+(c?"Down":"Up")+"("+p(b)+"): "+(d?"pass":"consume"));return d}
|
||||
function Na(a,b){var c=!1;b==a.Z?a.J&&(a.J.reset(!0),c=!0):(a.U&&65<=b&&90>=b&&(b+=32),Pa(a,b),T(a,b,!0,0)&&(a.s.speed==a.s.eb?T(a,b,!1,1):(c=!1,a.v[b]&&(clearTimeout(a.v[b]),c=!0),c=Oa(a,c),a.v[a.A=b]=setTimeout(function(a){return function(){T(a,b,!1,3)}}(a),c),a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): setTimeout()")),c=!0));a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): "+(c?"true":"false"));return c}
|
||||
function Ma(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.Aa=b);16==b?(a.g&=-5,c&&(a.g|=4),b+=224,e=!1):18==b?(a.g&=-3,c&&(a.g|=2),b+=224,e=!1):b==a.L-224?(a.g&=-65,c&&(a.g|=64),b+=224,e=!1):20==b?(c=!c,a.g&=~a.K,c&&(a.g|=a.K),b+=224,e=!1):91==b?(a.g&=-9,c&&(a.g|=8),e=!1,d=!0):d=9==b?e=!1:b==a.ia||b==a.da?c?!Na(a,b):!1:!0;e&&(a.g&=-9,a.U||b!=a.Aa||Pa(a));void 0===d&&(d=!T(a,b,c,2));a.u&&H(a.u,a.u.za)&&a.u.message("key"+(c?"Down":"Up")+"("+p(b)+"): "+(d?"pass":"consume"));return d}
|
||||
function Na(a,b){var c=!1;b==a.Z?a.J&&(a.J.reset(!0),c=!0):(a.U&&65<=b&&90>=b&&(b+=32),Pa(a,b),T(a,b,!0,0)&&(a.s.speed==a.s.eb?T(a,b,!1,1):(c=!1,a.v[b]&&(clearTimeout(a.v[b]),c=!0),c=Oa(a,c),a.v[a.A=b]=setTimeout(function(a){return function(){T(a,b,!1,3)}}(a),c),a.u&&H(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): setTimeout()")),c=!0));a.u&&H(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): "+(c?"true":"false"));return c}
|
||||
function T(a,b,c,d){var e=!1;c||(a.v[b]=null,a.A==b&&(a.A=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.L),h=a.b[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.o[b]|=1<<e,a.o[0]=g==a.L?a.o[0]|64:240==g?a.o[0]|4:242==g?a.o[0]|2:a.o[0]&-71):(a.o[b]&=~(1<<e),a.o[0]&=-71,a.o[0]|=a.g&70),c=0==d&&!a.P.length,a.P.push(a.o.slice()),Ra(a,c),e=!0);return e}f.S=function(){};f.W=function(a){this.oa=this.s.S(a)^this.R;this.V++;Ra(this,!1,a)};
|
||||
function Ra(a,b,c){var d=Ga(a.s);b||(a.s.speed==a.s.eb?b=void 0!==c&&32<=a.V:(b=d-a.qa,b=0>b||8192<=b));b&&(b=a.P.shift(),void 0!==b&&(a.ja=b),a.V=0,a.qa=d);for(b=d=0;8>b;b++)a.oa&1<<b&&(d|=a.ja[b]);d^=a.R;if(void 0!==c)a.a[c]=d;else if(c=a.ra,d!=a.pa)for(;c<a.lb;c++)a.a[c]=d;a.pa=d}x(function(){for(var a=F(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new La(d);E(d,c)}});
|
||||
function Ra(a,b,c){var d=Ga(a.s);b||(a.s.speed==a.s.eb?b=void 0!==c&&32<=a.V:(b=d-a.qa,b=0>b||8192<=b));b&&(b=a.P.shift(),void 0!==b&&(a.ja=b),a.V=0,a.qa=d);for(b=d=0;8>b;b++)a.oa&1<<b&&(d|=a.ja[b]);d^=a.R;if(void 0!==c)a.a[c]=d;else if(c=a.ra,d!=a.pa)for(;c<a.lb;c++)a.a[c]=d;a.pa=d}x(function(){for(var a=G(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new La(d);F(d,c)}});
|
||||
function Sa(a,b,c,d){z.call(this,"C1PVideo",a);this.ja=a.model;this.Z=a.charCols;this.$=a.charRows;this.pa=a.screenWidth;this.qa=a.screenHeight;this.A=a.charWidth;this.B=a.charHeight;Ta(this);this.D=b;this.ia=c;this.o=d}B(Sa);f=Sa.prototype;f.reset=function(a){this.Na(this.ja);if(this.a)for(var b=this.K;b<this.P;b++)this.a[b]=a?Math.floor(256*Math.random()):32};f.T=function(a,b,c){switch(b){case "refresh":return this.H[b]=c,c.onclick=function(a){return function(){Ua(a);va(a)}}(this),!0}return!1};
|
||||
f.ba=function(a,b,c,d){this.a=a;this.K=b;this.oa=c-b+1;this.P=this.K+this.oa;d&&(this.s=d,wa(d,56832,56832,this,this.S),N(d,56832,56832,this,this.W));this.reset(!0)};function Ta(a,b,c,d,e){a.J=void 0!==b?b:a.Z;a.ra=void 0!==c?c:a.$;a.g=a.J*a.ra;a.P=a.K+a.g;a.V=void 0!==d?d:0;a.da=void 0!==e?e:c;a.R=Math.floor(a.pa/a.J);a.U=Math.floor(a.qa/a.da)}f.ca=function(){this.D.focus()};
|
||||
f.Na=function(a){this.O=a;600==this.O?(Ta(this,this.Z,this.$,3,25),1024==this.g&&this.s&&(this.v=this.P+this.g-1,N(this.s,this.v,this.v,this,this.Mb))):(this.l("updated video model: "+this.O),Ta(this,64,32));Ua(this);va(this)};f.ha=function(a,b){if(a&&!this.C.M&&K(this)){if(this.C.M=!0,this.u=L(b,"debugger"),this.b=L(b,"keyboard"))this.b.T("canvas","keyDown",this.D),this.b.T("canvas","keyPress",this.D),this.b.T("canvas","keyUp",this.D)}else!a&&this.C.M&&(this.C.M=!1)};
|
||||
f.X=function(){this.A||(this.A=Math.floor(this.o.width/16));this.B||(this.B=Math.floor(this.o.height/16));z.prototype.X.call(this)};f.S=function(a,b){var c=this.s.S(a);void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab);this.s.W(a,c&127|(Math.floor(Ga(this.s)/8333)&1?128:0))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab)};
|
||||
f.Mb=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.ab,!0);this.Na(540);this.b&&this.b.Na(542);var c=this.s,d=c.K,e=[],g=xa(d,this.v,this.v,this,this.Mb);if(0<=g){e.push(d[g][0]);e.push(d[g][1]);d.splice(g,1);for(var h=65536,k=0,g=0;g<d.length;g++)h>d[g][0]&&(h=d[g][0]),k<d[g][1]&&(k=d[g][1]);e.push(h);e.push(k)}4==e.length&&(c.da=e[2],c.ia=e[3])}};function Ua(a){a.L=Array(a.g);for(var b=0;b<=a.g;b++)a.L[b]=-1}
|
||||
function va(a){var b=0;if(a.C.M)for(;b<a.g;){var c=a.a[a.K+b];if(a.L[b]!=c){var d=Math.floor(b/a.J);if(d>=a.V&&(d-=a.V,d<a.da)){var e=c*a.A;a.ia.drawImage(a.o,e%a.o.width,Math.floor(e/a.o.width)*a.B,a.A,a.B,b%a.J*a.R,d*a.U,a.R,a.U)}a.L[b]=c}b++}}
|
||||
x(function(){for(var a=F(document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","c1pjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor;
|
||||
e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",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.appendChild(e);var g=new Image,h=e.getContext("2d"),e=new Sa(d,e,h,g);g.onload=function(a){return function(){a.X()}}(e,d.charSet);g.src=d.charSet;E(e,c)}});
|
||||
x(function(){for(var a=G(document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=E(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","c1pjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor;
|
||||
e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",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.appendChild(e);var g=new Image,h=e.getContext("2d"),e=new Sa(d,e,h,g);g.onload=function(a){return function(){a.X()}}(e,d.charSet);g.src=d.charSet;F(e,c)}});
|
||||
function Va(a){z.call(this,"C1PSerialPort",a);this.C.M=!1;this.O=a.demo;this.reset()}B(Va);f=Va.prototype;f.reset=function(){if(2!=this.g){this.v=this.B=0;var a=1;if(this.rb){var b=this.rb.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.o='10 PRINT "HELLO OSI #'+a+'"\n';this.g=this.A=0}};f.start=function(){this.b&&this.O&&(U(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.g=1;U(a.b,"LOAD\n")}}(this),12E3));this.O=!1};
|
||||
f.T=function(a,b,c){var d=this;switch(b){case "listSerial":return this.H[b]=c,!0;case "loadSerial":return this.H[b]=c,c.onclick=function(){d.H.listSerial&&t(d.H.listSerial.value,d,d.sb)},!0;case "mountSerial":return!v("Mobi")&&window&&"FileReader"in window?(this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){d.sb(b.name,c.result.toString(),
|
||||
0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.D=b;this.L=c-b+1;this.K=this.D+this.L;if(this.s=d)wa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.b=L(b,"keyboard"),this.u=L(b,"debugger"))};
|
||||
f.sb=function(a,b,c){b?(this.o=b,this.g=this.A=0,this.J&&this.b&&this.s.C.ma?(this.l("auto-loading "+a),this.s.ca(),"."!=this.o.charAt(0)?(this.g=1,U(this.b,"NEW\nLOAD\n")):(this.g=2,this.J.reset(!0),U(this.b,"ML"))):this.l(a+" ready to load")):this.l(a+" load error ("+c+")")};f.S=function(a,b){void 0!==b&&(a&1?Wa(this):this.o&&!this.A&&Wa(this))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.Rb,!0)};
|
||||
function Wa(a){if(void 0!==a.o){a.B=0;a.v=0;if(a.A<a.o.length){var b=a.o.charCodeAt(a.A++);10==b&&(b=13);a.B=b;a.v=1}else 1==a.g&&a.b&&U(a.b," \nRUN\n"),a.g=0;for(b=a.D+0;b<a.K;b+=2)a.a[b]=a.v?1:0;for(b=a.D+1;b<a.K;b+=2)a.a[b]=a.v?a.B:0}}x(function(){for(var a=F(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Va(d);E(d,c)}});function Xa(a){z.call(this,"C1PDiskController",a);this.C.M=!1;this.reset(!0)}B(Xa);f=Xa.prototype;
|
||||
function Wa(a){if(void 0!==a.o){a.B=0;a.v=0;if(a.A<a.o.length){var b=a.o.charCodeAt(a.A++);10==b&&(b=13);a.B=b;a.v=1}else 1==a.g&&a.b&&U(a.b," \nRUN\n"),a.g=0;for(b=a.D+0;b<a.K;b+=2)a.a[b]=a.v?1:0;for(b=a.D+1;b<a.K;b+=2)a.a[b]=a.v?a.B:0}}x(function(){for(var a=G(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Va(d);F(d,c)}});function Xa(a){z.call(this,"C1PDiskController",a);this.C.M=!1;this.reset(!0)}B(Xa);f=Xa.prototype;
|
||||
f.reset=function(a){Ya(this);this.b=-1;a&&(this.g=[],this.g[0]={Se:0,tb:40,Sb:!0,Fa:20,na:0,Ea:-1,Va:[]})};
|
||||
function Ya(a){a.K={I:64,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.B.I&4||V(a,0,this)}}(a)};a.o={I:255,read:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.o.I:Za(a,c,a.A.I);c=(c|190)&-2;if(0<=a.b&&a.g[a.b].Va.length){var d=a.g[a.b];d.Sb&&(c&=-33);d.na||(c&=-3);10>=--d.Fa&&(0<d.Fa?(c&=-129,$a(a)):(d.Fa=100,0<=a.b&&(a.g[a.b].Ea=0,ab(a))))}this.I=c;a.B.I&4&&V(a,0,this)}}(a)};a.B={I:0,read:function(){},update:function(a){return function(c){void 0!==
|
||||
c&&(this.I=c&-193);V(a,1,this);a.o.update();a.K.update()}}(a)};a.L={I:255,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.D.I&4||V(a,2,this)}}(a)};a.A={I:255,read:function(){},update:function(a){return function(c){void 0===c?c=a.A.I:Za(a,a.o.I,c);if(0<=a.b&&a.b<a.g.length){var d=a.g[a.b];d.Va.length&&a.A.I&8&&!(c&8)&&(c&4?d.na--:d.na++,a.u&&G(a.u,a.u.Ha)&&a.u.message("stepping "+(c&4?"down":"up")+" to track "+d.na),d.na>=d.tb&&(d.na=d.tb),0>d.na&&(d.na=0),d.Fa=20,
|
||||
c&&(this.I=c&-193);V(a,1,this);a.o.update();a.K.update()}}(a)};a.L={I:255,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.D.I&4||V(a,2,this)}}(a)};a.A={I:255,read:function(){},update:function(a){return function(c){void 0===c?c=a.A.I:Za(a,a.o.I,c);if(0<=a.b&&a.b<a.g.length){var d=a.g[a.b];d.Va.length&&a.A.I&8&&!(c&8)&&(c&4?d.na--:d.na++,a.u&&H(a.u,a.u.Ha)&&a.u.message("stepping "+(c&4?"down":"up")+" to track "+d.na),d.na>=d.tb&&(d.na=d.tb),0>d.na&&(d.na=0),d.Fa=20,
|
||||
a.o.update(a.o.I|128),$a(a))}this.I=c;a.D.I&4&&V(a,2,this)}}(a)};a.D={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.P={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(3==(c&3)&&(a.v.I=14),this.I=c);a.v.update()}}(a)};a.v={I:14,read:function(){},update:function(a){return function(c){void 0===c&&(c=a.v.I);c&=-2;0<=a.b&&0<=a.g[a.b].Ea&&(c|=1);this.I=c;V(a,16,this)}}(a)};a.O={I:0,read:function(a){return function(){ab(a)}}(a),
|
||||
update:function(a){return function(c){void 0!==c&&(this.I=c);V(a,17,this)}}(a)};a.R={I:0,read:function(){},update:function(){return function(){}}(a)}}
|
||||
f.T=function(a,b,c){switch(b){case "listDisk":return this.H[b]=c,!0;case "loadDisk":return this.H[b]=c,c.onclick=function(a){return function(){if(a.H.listDisk){var b=a.H.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);var h=b,k=b.lastIndexOf("/");0<=k&&(h=b.substr(k+1));k=h.indexOf("&");0<k&&(h=h.substr(0,k));a.l("loading "+h+"...");t(c,a,a.Ub)}}}(this),!0}return!1};
|
||||
f.ba=function(a,b,c,d){this.a=a;this.J=b;if(this.s=d)wa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};
|
||||
f.Ub=function(a,b,c){if(c)this.l("disk load error ("+c+")");else{c=[];this.l("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.l("data error: "+d[0]);else if(this.g[0]){for(b=0;b<d.length;b++){var e,g=d[b],h=g.sectors;if(void 0===(e=g.trackNum)||void 0===h)throw Error("track "+b+" missing data");e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var k,l,m;if(e){bb(c,g,"trackSig");cb(c,g);W(c,g,"trackType");for(var r=0;r<h.length;r++){k=
|
||||
h[r];l=k.sectorData;W(c,k,"sectorSig");W(c,k,"sectorNum");W(c,k,"sectorPages");for(m=0;m<l.length;m++)c.push(l[m]);bb(c,k,"sectorEndSig")}}else for(k=h[0],l=k.sectorData,W(c,g,"trackLoad",2),W(c,k,"sectorPages"),m=0;m<l.length;m++)c.push(l[m]);d[e].Lb=c;this.u&&G(this.u,this.u.Ha)&&this.u.message("track "+e+": "+c.length+" bytes")}this.g[0].Va=d;this.l("mount of "+a+" complete")}else this.l("no available drives")}else this.l("no tracks: "+a);else this.l("no data: "+a)}catch(H){this.l("disk data error: "+
|
||||
H.message)}}};function cb(a,b){var c=b.trackNum;if(void 0===c)throw Error("missing bcd value: trackNum");a.push(Math.floor(c/10)<<4|c%10)}function W(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function bb(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||
f.Ub=function(a,b,c){if(c)this.l("disk load error ("+c+")");else{c=[];this.l("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.l("data error: "+d[0]);else if(this.g[0]){for(b=0;b<d.length;b++){var e,g=d[b],h=g.sectors;if(void 0===(e=g.trackNum)||void 0===h)throw Error("track "+b+" missing data");e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var k,l,m;if(e){bb(c,g,"trackSig");cb(c,g);W(c,g,"trackType");for(var q=0;q<h.length;q++){k=
|
||||
h[q];l=k.sectorData;W(c,k,"sectorSig");W(c,k,"sectorNum");W(c,k,"sectorPages");for(m=0;m<l.length;m++)c.push(l[m]);bb(c,k,"sectorEndSig")}}else for(k=h[0],l=k.sectorData,W(c,g,"trackLoad",2),W(c,k,"sectorPages"),m=0;m<l.length;m++)c.push(l[m]);d[e].Lb=c;this.u&&H(this.u,this.u.Ha)&&this.u.message("track "+e+": "+c.length+" bytes")}this.g[0].Va=d;this.l("mount of "+a+" complete")}else this.l("no available drives")}else this.l("no tracks: "+a);else this.l("no data: "+a)}catch(C){this.l("disk data error: "+
|
||||
C.message)}}};function cb(a,b){var c=b.trackNum;if(void 0===c)throw Error("missing bcd value: trackNum");a.push(Math.floor(c/10)<<4|c%10)}function W(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function bb(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||
function db(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.I&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.I&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.P:a.v;break;case 17:a=a.O;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=db(this,a-this.J,!1);this.u&&S(this.u,this,a,b,this.u.Ha,!1,c.Kb);c.read()}};
|
||||
f.W=function(a,b){if(void 0!==b){var c=this.s.S(a),d=db(this,a-this.J,!0);if(this.u&&G(this.u,this.u.Ha|this.u.pb)&&(S(this.u,this,a,b,this.u.Ha,!0,d.Kb),d.Pb))for(var e=128,g=d.I^c;g&&e;)g&e&&this.u.message(" changed "+d.Kb+"."+d.Pb[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Za(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.I&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function $a(a){0<=a.b&&(a.g[a.b].Ea=-1,a.O.update(255),a.v.update())}
|
||||
function ab(a){var b=null;if(0<=a.b){var b=a.g[a.b],c=b.Va[b.na];void 0!==c&&(0<=b.Ea&&b.Ea<c.Lb.length?(b.Fa=100,b=c.Lb[b.Ea++],a.O.update(b),a.v.update()):(b.Fa=10,$a(a)))}}function V(a,b,c){a.s.W(b+a.J,c.I)}x(function(){for(var a=F(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Xa(d);E(d,c)}});
|
||||
f.W=function(a,b){if(void 0!==b){var c=this.s.S(a),d=db(this,a-this.J,!0);if(this.u&&H(this.u,this.u.Ha|this.u.pb)&&(S(this.u,this,a,b,this.u.Ha,!0,d.Kb),d.Pb))for(var e=128,g=d.I^c;g&&e;)g&e&&this.u.message(" changed "+d.Kb+"."+d.Pb[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Za(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.I&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function $a(a){0<=a.b&&(a.g[a.b].Ea=-1,a.O.update(255),a.v.update())}
|
||||
function ab(a){var b=null;if(0<=a.b){var b=a.g[a.b],c=b.Va[b.na];void 0!==c&&(0<=b.Ea&&b.Ea<c.Lb.length?(b.Fa=100,b=c.Lb[b.Ea++],a.O.update(b),a.v.update()):(b.Fa=10,$a(a)))}}function V(a,b,c){a.s.W(b+a.J,c.I)}x(function(){for(var a=G(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Xa(d);F(d,c)}});
|
||||
function eb(a){z.call(this,"C1PDebugger",a);this.u=this;this.L=-1;this.ua=0;this.nb=null;this.Ya=!1;this.ga=0;this.sa=[];this.wa=[];this.ya=[];this.La=0;this.xa=[];this.B=[];this.pb=1;this.za=16;this.ab=32;this.Ha=64;this.Rb=128;this.la=this.Z=0;this.Ua={port:1,kbd:16,video:32,disk:64,serial:128};this.Qa=28;this.bb=56;this.Ka="ADC AND ASL BCC BCS BEQ BIT BMI BNE BPL BRK BVC BVS CLC CLD CLI CLV CMP CPX CPY DEC DEX DEY EOR INC INX INY JMP JSR LDA LDX LDY LSR NOP ORA PHA PHP PLA PLP ROL ROR RTI RTS SBC SEC SED SEI STA STX STY TAX TAY TSX TXA TXS TYA SIM .DB".split(" ");
|
||||
this.V=["HLT","MSG"];fb(this,!0);this.fa=[[10],[34,1,this.D],[this.bb,1],[],[],[34,1,this.b],[2,1,this.b],[],[36],[34,1,this.v],[2,0,this.P],[],[],[34,2,this.N],[2,2,this.N],[],[9,1,this.ea],[34,1,this.J],[],[],[],[34,1,this.g],[2,1,this.g],[],[13],[34,2,this.A],[],[],[],[34,2,this.o],[2,2,this.o],[],[this.Qa,2,this.Pa],[1,1,this.D],[],[],[6,1,this.b],[1,1,this.b],[39,1,this.b],[],[38],[1,1,this.v],[39,0,this.P],[],[6,2,this.N],[1,2,this.N],[39,2,this.N],[],[7,1,this.ea],[1,1,this.J],[],[],[],[1,
|
||||
1,this.g],[39,1,this.g],[],[44],[1,2,this.A],[],[],[],[1,2,this.o],[39,2,this.o],[],[41],[23,1,this.D],[],[],[],[23,1,this.b],[32,1,this.b],[],[35],[23,1,this.v],[32,0,this.P],[],[27,2,this.Pa],[23,2,this.N],[32,2,this.N],[],[11,1,this.ea],[23,1,this.J],[],[],[],[23,1,this.g],[32,1,this.g],[],[15],[23,2,this.A],[],[],[],[23,2,this.o],[32,2,this.o],[],[42],[0,1,this.D],[],[],[],[0,1,this.b],[40,1,this.b],[],[37],[0,1,this.v],[40,0,this.P],[],[27,2,this.ob],[0,2,this.N],[40,2,this.N],[],[12,1,this.ea],
|
||||
|
|
@ -128,11 +128,11 @@ this.V=["HLT","MSG"];fb(this,!0);this.fa=[[10],[34,1,this.D],[this.bb,1],[],[],[
|
|||
f.T=function(a,b,c){var d=this;switch(b){case "debugInput":return this.R=this.H[b]=c,this.R.focus(),c.onkeypress=function(a,c){return function(d){13==d.keyCode&&(b=c.value,c.value="",gb(a,b))}}(this,c),!0;case "debugEnter":return this.H[b]=c,ea(c,function(){return d.R?(b=d.R.value,gb(d,b),!0):!1}),!0;case "step":return this.H[b]=c,ea(c,function(a){var b=!1;J(d,!0)||(I(d,!0),b=d.step(a?1:0),I(d,!1));return b}),!0}return!1};
|
||||
f.ba=function(a,b,c){this.a=a;this.O=b;this.qa=c-b+1;this.Ga=this.O+this.qa;this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.s=L(b,"cpu"))};f.ca=function(){this.R.focus()};
|
||||
function fb(a,b){a.P=0;a.v=1;a.o=2;a.A=3;a.Pa=4;a.ob=5;a.g=6;a.U=7;a.D=8;a.J=9;a.N=10;a.b=11;a.ea=a.Pa;var c="",d,e;if(b)for(a.ka="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),d=0;d<a.ka.length;d++)e=a.ka[d],c+="("+e.replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\$/g,"\\$")+"|)";else for(a.ka="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
|
||||
d=0;d<a.ka.length;d++)e=a.ka[d],c+="("+e.replace(/\[/g,"\\[").replace(/]/g,"\\]").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\+/g,"\\+")+"|)";a.Qe=new RegExp(c);a.Qb=[27,a.Qa,9,7,11,12,3,4,8,5]}f.aa=function(){this.s.aa()};function S(a,b,c,d,e,g,h){(a.la&e)==e&&(e=a.s.S(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+q(c)+")"+(void 0!==d?" @"+q(d):"")+": "+(h?h+"=":"")+p(e)))}f.message=function(a){this.l(a);Fa(this.s)};f.Tb=function(){this.l("Type ? for list of debugger commands\n")};
|
||||
d=0;d<a.ka.length;d++)e=a.ka[d],c+="("+e.replace(/\[/g,"\\[").replace(/]/g,"\\]").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\+/g,"\\+")+"|)";a.Qe=new RegExp(c);a.Qb=[27,a.Qa,9,7,11,12,3,4,8,5]}f.aa=function(){this.s.aa()};function S(a,b,c,d,e,g,h){(a.la&e)==e&&(e=a.s.S(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+r(c)+")"+(void 0!==d?" @"+r(d):"")+": "+(h?h+"=":"")+p(e)))}f.message=function(a){this.l(a);Fa(this.s)};f.Tb=function(){this.l("Type ? for list of debugger commands\n")};
|
||||
f.va=function(){if(!hb(this))return!1;this.s.va();return!0};f.step=function(a){if(!hb(this))return!1;var b;try{b=this.s.step(a)}catch(c){b=void 0,qa(this.s,c.stack||c.message)}void 0!==b&&this.L++;this.s.update(!0);this.update(!0);return b};f.update=function(a){this.ua=this.s.f;a||this.Da?ib(this):jb(this)};function hb(a){a.s&&K(a.s)&&!J(a.s)?(a=a.s,a.C.Ca?(a.l(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}
|
||||
f.reset=function(){var a;this.xa.length||(this.xa=Array(1E3));for(a=0;a<this.xa.length;a++)this.xa[a]=-1;this.B.length||(this.B=Array(256));for(a=0;a<this.B.length;a++)this.B[a]=[a,0];this.L&&this.update();this.L=0};f.start=function(){this.Da||this.l("running")};f.stop=function(a,b){if(!this.Da&&(this.l("stopped"),b)){var c=ca();this.l(c-a+"ms ("+b+" cycles)")}this.update();this.ca();this.Da||(this.L=0);kb(this,this.s.f)};function lb(a,b){return a+(b<<24>>24)}
|
||||
f.S=function(a){var b;a>=this.O&&a<this.Ga&&(ya(this.s,a),b=this.a[this.O+a],b&=255);return b};f.W=function(a,b){a<this.O||a>=this.Ga?this.l("invalid address: "+q(a)):(this.a[this.O+a]=b&255,za(this.s,a),this.s.update())};function mb(a,b){X(a.sa,b,void 0)||a.sa.push(b);return!0}function X(a,b,c){for(var d=!1,e=0;e<a.length;e++)if(a[e]==b){c&&a.splice(e,1);d=!0;break}return d}function nb(a,b){void 0!==b&&(kb(a,a.K),mb(a,b)&&(a.K=b))}
|
||||
function kb(a,b){void 0!==a.K&&b==a.K&&X(a.sa,a.K,!0)&&(a.K=void 0);a.Da=!1}function Ea(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.K&&a.l("breakpoint hit: "+q(b)+" ("+d+")");e=!0;break}return e}
|
||||
f.S=function(a){var b;a>=this.O&&a<this.Ga&&(ya(this.s,a),b=this.a[this.O+a],b&=255);return b};f.W=function(a,b){a<this.O||a>=this.Ga?this.l("invalid address: "+r(a)):(this.a[this.O+a]=b&255,za(this.s,a),this.s.update())};function mb(a,b){X(a.sa,b,void 0)||a.sa.push(b);return!0}function X(a,b,c){for(var d=!1,e=0;e<a.length;e++)if(a[e]==b){c&&a.splice(e,1);d=!0;break}return d}function nb(a,b){void 0!==b&&(kb(a,a.K),mb(a,b)&&(a.K=b))}
|
||||
function kb(a,b){void 0!==a.K&&b==a.K&&X(a.sa,a.K,!0)&&(a.K=void 0);a.Da=!1}function Ea(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.K&&a.l("breakpoint hit: "+r(b)+" ("+d+")");e=!0;break}return e}
|
||||
function ob(a,b,c){var d=n(b,4),e=a.S(b++),g=a.fa[e],h=void 0===e?0:e,k=[],l=void 0===g[1]?0:g[1];do{d+=" "+n(h,2);if(!l--)break;h=a.S(b++);if(void 0===h)break;k.push(h)}while(1);void 0===g[0]&&(g=[57,1,a.v],k.push(e));var d=(d+" ").substr(0,15),d=d+a.Ka[g[0]],m=null;if(void 0!==g[2]){l=g[2];m=a.ka[l];if(1==g[1]&&l==a.ea)m=m.replace(/nnnn/,n(lb(b,h=k.pop()),4));else for(;k.length;)m=m.replace(/nn/,n(h=k.pop(),2));l==a.v&&1==g[1]&&32<=h&&128>h&&(m+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.s.bb&&
|
||||
(h<a.V.length&&(m=a.V[h]),h==a.s.Nb)){l=0;for(m='"';h=a.S(b++);)16>l?m+=String.fromCharCode(h):16==l&&(m+="\u2026"),l++;m+='"'}m&&(d+=" "+m);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.$=b;return d}
|
||||
function Y(a,b){var c=a.ua;if(void 0!==b){var d=16;"$"==b.charAt(0)?b=b.substr(1):"0x"==b.substr(0,2)?b=b.substr(2):"."==b.charAt(b.length-1)&&(d=10,b=b.substr(0,b.length-1));c=parseInt(b,d);isNaN(c)&&(a.l("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c<a.O||c>=a.Ga)&&(a.l("address out of range: "+n(c)),c=void 0);return c}
|
||||
|
|
@ -141,25 +141,25 @@ function ib(a,b,c,d){var e=Y(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ga;if(voi
|
|||
function jb(a,b){if(b&&"?"==b[1])a.l("\nregister commands:"),a.l("r to display all"),a.l("r [target=value] to modify"),a.l("supported targets:"),a.l("A,X,Y,S,PC and flags C,Z,D,V,N");else{var c=!0;if(void 0!==b&&1<b.length){var c=!1,d=b[1],e=null,g=d.indexOf("=");if(0<g)e=d.substr(g+1),d=d.substr(0,g);else if(2<b.length)e=b[2];else{a.l("missing value for "+b[1]);return}g=parseInt(e,16);if(isNaN(g)){a.l("invalid value: "+e);return}switch(d.toUpperCase()){case "A":a.s.h=g&255;break;case "X":a.s.w=g&
|
||||
255;break;case "Y":a.s.F=g&255;break;case "C":a.s.c=g?256:0;break;case "Z":a.s.j=g?0:1;break;case "D":g?Ha(a.s):Ia(a.s);break;case "V":g?(d=a.s,d.v=0,d.A=128):(d=a.s,d.v=0,d.A=0);break;case "N":a.s.i=g?128:0;break;case "S":if(256!=(g&-256)){a.l("invalid stack pointer: "+e);return}a.s.G=g;break;case "PC":c=!0;a.s.f=g&65535;a.ua=a.s.f;break;default:a.l("unknown register: "+d);return}a.s.update()}a.l("A="+n(a.s.h,2)+" X="+n(a.s.w,2)+" Y="+n(a.s.F,2)+" P="+n(Ca(a.s),2)+" S="+n(a.s.G,4)+" PC="+n(a.s.f,
|
||||
4));c&&ib(a,n(a.ua=a.s.f,4))}}function qb(a,b){var c=void 0===b?1:parseInt(b,10),d=1==c?0:1;da(c,function(a){return function(){return I(a,!0)&&a.step(d)}}(a),function(a){return function(){I(a,!1)}}(a))}
|
||||
function gb(a,b){b.length||(a.Ya?(a.l("ended assemble @"+n(a.ga,4)),a.ua=a.ga,a.Ya=!1):a.nb&&(b=a.nb));if(K(a)&&!J(a,!0)&&0<b.length){a.Ya?b="a "+n(a.ga,4)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.nb=c[0];switch(c[0].toLowerCase()){case "a":var d=Y(a,c[1]);if(void 0!==d)if(a.ga=d,void 0===c[2])a.l("begin assemble @"+q(a.ga)),a.Ya=!0,a.s.update();else{var e,g=c[2],h=c[3],c=a.ga,d=[];if(void 0!==g){var k,g=g.toUpperCase();"?"==g.charAt(g.length-
|
||||
function gb(a,b){b.length||(a.Ya?(a.l("ended assemble @"+n(a.ga,4)),a.ua=a.ga,a.Ya=!1):a.nb&&(b=a.nb));if(K(a)&&!J(a,!0)&&0<b.length){a.Ya?b="a "+n(a.ga,4)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.nb=c[0];switch(c[0].toLowerCase()){case "a":var d=Y(a,c[1]);if(void 0!==d)if(a.ga=d,void 0===c[2])a.l("begin assemble @"+r(a.ga)),a.Ya=!0,a.s.update();else{var e,g=c[2],h=c[3],c=a.ga,d=[];if(void 0!==g){var k,g=g.toUpperCase();"?"==g.charAt(g.length-
|
||||
1)&&(h="?",g=g.substr(0,g.length-1));for(k=0;k<a.Ka.length&&g!=a.Ka[k];k++);k==a.Ka.length&&(a.l("unknown operation: "+g),k=-1);var l="",m;if(0<=k&&void 0!==h)if(l=h.toUpperCase(),"?"==l){for(h=m=0;h<a.fa.length;h++)a.fa[h][0]===k&&(m||a.l("supported opcodes:"),a.l(" "+n(h,2)+": "+g+(void 0!==a.fa[h][2]?" "+a.ka[a.fa[h][2]]:"")),m++);k=-1}else if(m=l.match(a.Qe),null!==m&&m[0]==l){for(h=1;h<m.length;h++)if(m[h]==l)if(void 0===e)e=h-1;else{a.l("too many operand matches (both "+a.ka[e]+" and "+
|
||||
a.ka[h-1]+")");k=-1;break}e==a.Pa&&0>a.Qb.indexOf(k)&&(e=a.N);e==a.ob&&27!=k&&(e=a.N)}else a.l("unknown operand: "+l),k=-1;if(0<=k){m=-1;for(h=0;h<a.fa.length;h++)if(a.fa[h][0]===k&&a.fa[h][2]===e)if(0>m)m=h;else{a.l("too many instruction matches (both "+p(m)+" and "+p(h)+")");m=-2;break}if(0<=m){if(d.push(m),void 0!==e)if(g=a.fa[m][1],l=l.match(/[0-9A-F]+/),null!==l)for(l=parseInt(l[0],16),1==g&&e==a.ea&&(l-=c+2,-128>l||127<l)&&(a.l("branch out of range ("+l+")"),d=[],g=0),h=0;h<g;h++)d.push(l&255),
|
||||
l>>>=8;else g&&a.l("instruction missing "+g+" bytes")}else a.l("unknown instruction: "+g+" "+l+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.W(a.ga+c,e[c]);a.l(ob(a,a.ga));a.ga+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.l("\nbreakpoint commands:"),a.l("bp [a]\tset exec breakpoint at [a]"),a.l("br [a]\tset read breakpoint at [a]"),a.l("bw [a]\tset write breakpoint at [a]"),a.l("bc [a]\tclear breakpoint at [a]"),a.l("bl\tlist all breakpoints");else if(void 0===c&&1<e.length&&(c=
|
||||
e.substr(1),e=e.substr(0,1)),"l"==e){e=0;d=a.sa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (exec)"),e++;d=a.wa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (read)"),e++;d=a.ya;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (write)"),e++;e||a.l("no breakpoints")}else void 0===c?a.l("missing breakpoint address"):"c"==e&&"*"==c?(a.sa=[],a.wa=[],a.ya=[],a.l("all breakpoints cleared")):(c=Y(a,c),void 0!==c&&("p"==e?mb(a,c)?a.l("breakpoint enabled: "+q(c)+" (exec)"):
|
||||
a.l("breakpoint not set: "+q(c)):"c"==e?X(a.sa,c,!0)?a.l("breakpoint cleared: "+q(c)+" (exec)"):X(a.wa,c,!0)?a.l("breakpoint cleared: "+q(c)+" (read)"):X(a.ya,c,!0)?a.l("breakpoint cleared: "+q(c)+" (write)"):a.l("breakpoint missing: "+q(c)):"r"==e?(X(a.wa,c,void 0)||a.wa.push(c),a.l("breakpoint enabled: "+q(c)+" (read)")):"w"==e?(X(a.ya,c,void 0)||a.ya.push(c),a.l("breakpoint enabled: "+q(c)+" (write)")):a.l("unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)a.l("\ndump commands:"),
|
||||
e.substr(1),e=e.substr(0,1)),"l"==e){e=0;d=a.sa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+r(d[c])+" (exec)"),e++;d=a.wa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+r(d[c])+" (read)"),e++;d=a.ya;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+r(d[c])+" (write)"),e++;e||a.l("no breakpoints")}else void 0===c?a.l("missing breakpoint address"):"c"==e&&"*"==c?(a.sa=[],a.wa=[],a.ya=[],a.l("all breakpoints cleared")):(c=Y(a,c),void 0!==c&&("p"==e?mb(a,c)?a.l("breakpoint enabled: "+r(c)+" (exec)"):
|
||||
a.l("breakpoint not set: "+r(c)):"c"==e?X(a.sa,c,!0)?a.l("breakpoint cleared: "+r(c)+" (exec)"):X(a.wa,c,!0)?a.l("breakpoint cleared: "+r(c)+" (read)"):X(a.ya,c,!0)?a.l("breakpoint cleared: "+r(c)+" (write)"):a.l("breakpoint missing: "+r(c)):"r"==e?(X(a.wa,c,void 0)||a.wa.push(c),a.l("breakpoint enabled: "+r(c)+" (read)")):"w"==e?(X(a.ya,c,void 0)||a.ya.push(c),a.l("breakpoint enabled: "+r(c)+" (write)")):a.l("unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)a.l("\ndump commands:"),
|
||||
a.l("d [a] [#] dump # lines of memory");else if(e=Y(a,e),void 0!==e){c=0;void 0!==d&&("l"==d.charAt(0)&&(d=d.substr(1)),c=parseInt(d,10));c||(c=1);for(d=0;d<c;d++){l=g="";h=e;for(k=0;8>k&&e<a.Ga;k++)m=a.S(e),void 0===m&&(m=0),g+=n(m,2)+" ",l+=32<=m&&128>m?String.fromCharCode(m):".",e++;a.l(n(h,4)+" "+g+l)}a.ua=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.W(e++,g);break;case "f":pb(a,c[1]);break;case "g":e=
|
||||
c[1];void 0!==e&&nb(a,Y(a,e));a.va()||a.s.ca();break;case "h":a.aa();break;case "o":if(void 0===c[1]||"?"==c[1])a.l("\noption commands:"),a.l("max\trun at maximum speed"),a.l("fast\trun faster (up to "+a.s.Ma+"Mhz)"),a.l("slow\trun at normal speed (1Mhz)"),a.l("classic\tuse classic operand syntax"),a.l("modern\tuse modern operand syntax"),a.l("msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.s,a.s.Ra);break;case "fast":M(a.s,a.s.Ob);break;case "max":M(a.s,a.s.eb);break;case "classic":fb(a,
|
||||
!0);a.l("classic syntax enabled");break;case "modern":fb(a,!1);a.l("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Ua[c[2]]&&(e=a.Ua[c[2]]),e&&("on"==c[3]?a.la|=e:"off"==c[3]&&(a.la&=~e)));for(d in a.Ua)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Ua[d],a.l(d+" messages: "+(a.la&e?"on":"off"));break;default:a.l("unknown option: "+e)}break;case "p":l=c[1];e=10;c=a.La;d=a.xa;if(void 0!==d){g=void 0===l?a.Vb:parseInt(l,10);void 0===g&&(g=10);g>d.length&&(a.l("note: only "+
|
||||
d.length+" available"),g=d.length);void 0!==l&&(a.mb=0,a.l(g+" instructions earlier:"));l=a.mb?a.mb:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.La;){h=d[c];if(0>h)break;a.l(ob(a,h,l++));++c==d.length&&(c=0);e--;g--}a.Vb=g;a.mb=l}10==e&&a.l("no history available");break;case "r":jb(a,c);break;case "s":a.S(a.s.f)==a.s.Qa?(nb(a,a.s.f+3),a.Da=!0,a.va()||a.s.ca()):qb(a);break;case "t":qb(a,c[1]);break;case "u":ib(a,c[1],c[2],8);break;case "?":case "help":a.l("\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble");
|
||||
a.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}x(function(){for(var a=F(document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new eb(d);E(d,c)}});function Z(a,b){z.call(this,"C1PComputer",a);this.Y=b}B(Z);Z.prototype.reset=function(a){var b=null,c;for(c in this.Y)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.va())};
|
||||
a.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}x(function(){for(var a=G(document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new eb(d);F(d,c)}});function Z(a,b){z.call(this,"C1PComputer",a);this.Y=b}B(Z);Z.prototype.reset=function(a){var b=null,c;for(c in this.Y)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.va())};
|
||||
Z.prototype.start=function(){for(var a in this.Y)if("cpu"!=a)for(var b=0;b<this.Y[a].length;b++){var c=this.Y[a][b];c&&c.start&&c.start()}};Z.prototype.stop=function(a,b){for(var c in this.Y)if("cpu"!=c)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.stop&&e.stop(a,b)}};Z.prototype.T=function(a,b,c){switch(b){case "reset":return this.H[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.Y[b]?a.Y[b][0]:null}
|
||||
function rb(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(){rb(a)}}(a));return}"cpu"==c?b=e:e.ha&&e.ha(!0,a)}}a.X();a.l("C1Pjs v1.20.9\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.ha(!0,a)}
|
||||
x(function(){for(var a=F(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=D(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var r=d.modules[m];if(!m){if("cpu"!=r.type)break;k=r.start;l=r.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=pa(r.refID,d.id)){var H=r.type;void 0===g[H]&&(g[H]=[]);g[H].push(e);e.ba&&void 0!==r.start&&e.ba(h,r.start,r.end,g.cpu[0])}else{u('no component for <module refid="'+r.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(e=pa("debugger",d.id))g["debugger"]=[e],e.ba&&e.ba(h,k,l,g.cpu[0]);k=new Z(d,g);if(l=pa("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<A.length;d++)m=A[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)}E(k,c);rb(k)}});var sb=0;function tb(a,b,c,d,e,g){e("Loading "+a+"...");t(a,null,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):ub(k,a,b,c,d,e,g)})}
|
||||
function ub(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(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+'"}';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(H){k=null,a=H.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?vb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function vb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");t(e,null,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,r=/( [a-z]+=)(['"])(.*?)\2/g;m=r.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]*/,
|
||||
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 q=d.modules[m];if(!m){if("cpu"!=q.type)break;k=q.start;l=q.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=pa(q.refID,d.id)){var C=q.type;void 0===g[C]&&(g[C]=[]);g[C].push(e);e.ba&&void 0!==q.start&&e.ba(h,q.start,q.end,g.cpu[0])}else{u('no component for <module refid="'+q.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(e=pa("debugger",d.id))g["debugger"]=[e],e.ba&&e.ba(h,k,l,g.cpu[0]);k=new Z(d,g);if(l=pa("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<A.length;d++)m=A[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);rb(k)}});var sb=0;function tb(a,b,c,d,e,g){e("Loading "+a+"...");t(a,null,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):ub(k,a,b,c,d,e,g)})}
|
||||
function ub(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+'"}';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(C){k=null,a=C.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?vb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function vb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");t(e,null,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,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.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);vb(a,b,c)}})}else c(a,null)}
|
||||
function wb(a,b,c){function d(a){if(void 0===h){var b=g&&F(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ba(a))}function e(a){d("Error: "+a);k&&(--sb||y(!0));k=!1}var g,h,k=!0;sb++;C[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/c1pjs/1.20.9/components.xsl");var l=function(h,k){k?(C[a]&&(C[a][b]=h),tb(c,null,null,!1,d,function(h,l){if(l)if(C[a]&&(C[a][c]=h),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(g.outerHTML=m,--sb||y(!0)):
|
||||
e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--sb||y(!0)):e("invalid machine element: "+a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(h)})):e(h)};"<"!=b.charAt(0)?tb(b,a,void 0,!0,d,l):ub(b,null,a,void 0,!1,d,l)}else e("missing machine element: "+a)}catch(m){e(m.message)}return k}
|
||||
window.embedC1P=function(a,b,c){y(!1);return wb(a,b,c)};window.enableEvents=y;window.sendEvent=ja;})();
|
||||
function wb(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=ba(a))}function e(a){d("Error: "+a);k&&(--sb||y(!0));k=!1}var g,h,k=!0;sb++;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],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));m.appendChild(q)}c||(c=
|
||||
"/versions/c1pjs/1.20.9/components.xsl");l=function(h,k){k?tb(c,null,null,!1,d,function(h,l){if(l)if(D[a]&&c&&(D[a][c]=h),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(g.outerHTML=m,--sb||y(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--sb||y(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(h)}):e(h)};"<"!=b.charAt(0)?tb(b,a,void 0,!0,d,l):ub(b,null,a,void 0,!1,d,l)}else e("missing machine element: "+a)}catch(C){e(C.message)}return k}window.embedC1P=function(a,b,c){y(!1);return wb(a,b,c)};window.enableEvents=y;window.sendEvent=ja;})();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -10,7 +10,7 @@ function wa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"
|
|||
function Ea(a){if(za)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){g("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Fa(a){!za&&a?(za=!0,ya&&Ga("init")):za=a}function Ga(a){xa[a]&&Ea(xa[a])}Aa("onload",function(){ya=!0;Ea(xa.init)});Aa("onpageshow",function(){Ea(xa.show)});Aa(wa("Opera")||wa("iOS")?"onunload":"onbeforeunload",function(){Ea(xa.exit)});
|
||||
function Ha(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Ah=b.comment;this.pj=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.mf=this.id.substr(0,b),this.hf=this.id.substr(b+1)):this.hf=this.id;this[a]=c;this.ja={le:!1,Mc:!1,jg:!1,Qb:!1,Yc:!1};this.Df=null;this.ja.Yc=!1;this.pa={};this.Ta=null;Ia.push(this)}var Ja=void 0,Ka={};
|
||||
if(window){Ja||(Ja=window.location.search.substr(1));for(var La,Ma=/\+/g,Na=/([^&=]+)=?([^&]*)/g;La=Na.exec(Ja);)Ka[decodeURIComponent(La[1].replace(Ma," "))]=decodeURIComponent(La[2].replace(Ma," "))}function Oa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function Pa(a,b){b||(b=Ha);a.prototype=Oa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ia=[],Qa={};function Ra(a,b,c){Qa[a]&&(Qa[a][b]=c)}function Sa(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ia.length;b++){var d=Ia[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Ta(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ia.length;c++)if(Ia[c].id===a)return Ia[c]}return null}
|
||||
function Pa(a,b){b||(b=Ha);a.prototype=Oa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ia=[],Qa={};function Ra(a,b,c){Qa[a]&&b&&(Qa[a][b]=c)}function Sa(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ia.length;b++){var d=Ia[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Ta(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ia.length;c++)if(Ia[c].id===a)return Ia[c]}return null}
|
||||
function Ua(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<Ia.length;d++)if(c)c==Ia[d]&&(c=null);else if(!(a!=Ia[d].type||b&&Ia[d].id.indexOf(b)))return Ia[d]}return null}function Va(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){g(c.message+" ("+a+")")}return b}function Wa(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=Ua(d,a.id))&&(b=d.pa[b])&&a.Eb(null,c,b))}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
|
||||
function Xa(a,b){for(var c=Ya(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,k=0;k<e.length;k++){var l=e[k];if(l.nodeType===document.ELEMENT_NODE){var p=l.getAttribute("class");if(p)for(var q=p.split(" "),v=0;v<q.length;v++)switch(p=q[v],p){case "pcjs-binding":(p=Va(l))&&p.binding&&a.Eb(p.type,p.binding,l,p.value),v=q.length}}}}
|
||||
function Ya(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
|
|
@ -49,7 +49,7 @@ b)},Ob:function(a,b,c){Yb(this.A,c,!0).dc(a,b,c)},Nc:function(a,b,c){Yb(this.A,c
|
|||
1]},Ca:function(a){return this.O.getInt32(a,!0)},Fa:function(a){return a&3?this.Pa[a]|this.Pa[a+1]<<8|this.Pa[a+2]<<16|this.Pa[a+3]<<24:this.aa[a>>2]},Ka:function(a){this.B.aa[this.F]|=32;this.D.aa[this.H]|=32;return a&3?this.Pa[a]|this.Pa[a+1]<<8|this.Pa[a+2]<<16|this.Pa[a+3]<<24:this.aa[a>>2]},vb:function(a,b){this.Pa[a]=b;this.Oa=!0},Ab:function(a,b){this.Pa[a]=b;this.Oa=!0},Ib:function(a,b){this.Pa[a]=b;this.B.aa[this.F]|=32;this.D.aa[this.H]|=96;this.T.Oa=!0},vc:function(a,b){this.O.setUint16(a,
|
||||
b,!0);this.Oa=!0},xc:function(a,b){a&1?(this.Pa[a]=b,this.Pa[a+1]=b>>8):this.sd[a>>1]=b;this.Oa=!0},Fc:function(a,b){a&1?(this.Pa[a]=b,this.Pa[a+1]=b>>8):this.sd[a>>1]=b;this.B.aa[this.F]|=32;this.D.aa[this.H]|=96;this.T.Oa=!0},Pb:function(a,b){this.O.setInt32(a,b,!0);this.Oa=!0},kc:function(a,b){a&3?(this.Pa[a]=b,this.Pa[a+1]=b>>8,this.Pa[a+2]=b>>16,this.Pa[a+3]=b>>24):this.aa[a>>2]=b;this.Oa=!0},jc:function(a,b){a&3?(this.Pa[a]=b,this.Pa[a+1]=b>>8,this.Pa[a+2]=b>>16,this.Pa[a+3]=b>>24):this.aa[a>>
|
||||
2]=b;this.B.aa[this.F]|=32;this.D.aa[this.H]|=96;this.T.Oa=!0}};function rb(a,b,c){a.Ta=b;a.ee=a.fe=0;c&&(c.A&&(a.A=c.A),(a.ee=c.ee)&&Zb(a,$b,!1),(a.fe=c.fe)&&ac(a,$b,!1))}function ac(a,b,c){c&&a.fe||(a.dc=!a.K&&b[3]||a.Z,a.lf=!a.K&&b[4]||a.oa,a.kf=!a.K&&b[5]||a.pa);if(c||void 0===c)a.jf=b[3]||a.Z,a.qh=b[4]||a.oa,a.ka=b[5]||a.pa}function Zb(a,b,c){c&&a.ee||(a.cc=b[0]||a.ha,a.cf=b[1]||a.ta,a.Rd=b[2]||a.da);if(c||void 0===c)a.Bd=b[0]||a.ha,a.df=b[1]||a.ta,a.kh=b[2]||a.da}
|
||||
function Db(a,b,c){b||(b=5==a.type?bc:6==a.type?dc:ec);Zb(a,b,c);ac(a,b,c)}var ec=[],Jb=[h.prototype.ua,h.prototype.Wa,h.prototype.Ja,h.prototype.Fb,h.prototype.yc,h.prototype.lc],$b=[h.prototype.qa,h.prototype.Qa,h.prototype.Da,h.prototype.wb,h.prototype.wc,h.prototype.Vb],dc=[h.prototype.xa,h.prototype.fb,h.prototype.La,h.prototype.Jb,h.prototype.Gc,h.prototype.mc],bc=[h.prototype.ya,h.prototype.kb,h.prototype.Ma,h.prototype.Ob,h.prototype.Nc,h.prototype.rc];
|
||||
function Db(a,b,c){b||(b=5==a.type?bc:6==a.type?cc:ec);Zb(a,b,c);ac(a,b,c)}var ec=[],Jb=[h.prototype.ua,h.prototype.Wa,h.prototype.Ja,h.prototype.Fb,h.prototype.yc,h.prototype.lc],$b=[h.prototype.qa,h.prototype.Qa,h.prototype.Da,h.prototype.wb,h.prototype.wc,h.prototype.Vb],cc=[h.prototype.xa,h.prototype.fb,h.prototype.La,h.prototype.Jb,h.prototype.Gc,h.prototype.mc],bc=[h.prototype.ya,h.prototype.kb,h.prototype.Ma,h.prototype.Ob,h.prototype.Nc,h.prototype.rc];
|
||||
if(cb)var Ib=[h.prototype.na,h.prototype.Na,h.prototype.Ca,h.prototype.vb,h.prototype.vc,h.prototype.Pb],Hb=[h.prototype.sa,h.prototype.Va,h.prototype.Fa,h.prototype.Ab,h.prototype.xc,h.prototype.kc],fc=[h.prototype.va,h.prototype.ab,h.prototype.Ka,h.prototype.Ib,h.prototype.Fc,h.prototype.jc];
|
||||
function gc(a,b){Ha.call(this,"CPU",a,gc);var c=a.cycles||b,d=a.multiplier||1;this.Y={};this.Y.Zc=c;this.Y.zd=d;this.Y.Ff=Math.round(this.Y.Zc/1E4)/100;this.Y.re=this.Y.Ff*this.Y.zd;this.ja.Rb=!1;this.ja.Rh=!1;this.ja.ig=a.autoStart;this.ja.Qh=!1;c=Ka.autostart;void 0!==c&&(this.ja.ig="true"==c?!0:"false"==c?!1:null);this.ja.Bf=!1;this.Y.Hf=this.Y.te=0;this.Y.If=a.csStart;this.Y.Ke=a.csInterval;this.Y.Le=a.csStop;this.Vd=[];this.Aj=this.oh.bind(this);$a(this)}Pa(gc);var hc=["power","reset"];f=gc.prototype;
|
||||
f.nc=function(a,b,c,d){this.ta=a;this.oa=b;this.Ta=d;for(b=0;b<hc.length;b++)(c=this.pa[hc[b]])&&this.ta.Eb(null,hc[b],c);this.ld=jb(a,"FPU");for(b=null;b=jb(a,"Video",b);)this.Vd.push(b);this.T=jb(a,"ChipSet");$a(this)};f.reset=function(){};f.save=function(){return null};f.restore=function(){return!1};f.Tb=function(a,b){if(!b){if(a&&this.restore){ic(this);if(!this.restore(a))return!1;jc(this)}else this.reset();this.pc("No debugger detected")}kc(this);return!0};
|
||||
|
|
@ -81,11 +81,11 @@ r(d,d.la(p+l)));c&&d.gb(p+0,k);d.Ua|=8;return!0}f.save=function(){return[this.ra
|
|||
function yc(a,b,c,d){void 0===c&&(c=!!(a.A.Ua&1));a.wd=!1;if(c)if(a.load=a.Ef,a.Wh=a.Vk,a.gc=a.Jh,a.hc=a.Lh,void 0===d&&(d=!!(a.A.ca&131072)),d)a.load=a.T,a.gc=a.K,a.hc=a.N,a.Cb=a.uc=3,a.ba=a.Uc=2,a.C=a.wa=65535,a.cb=65535,a.D=a.cb+1,a.Uc=a.ba,a.fc=-1,a.ne=!1;else{if(!(a.ra&-4))a.gc=a.yf,a.hc=a.zf;else if(a.type&4096){6144==(a.type&6656)&&(a.gc=a.yf);if(a.type&2048||!(a.type&512))a.hc=a.zf;1024==(a.type&3072)&&(a.gc==a.Jh&&(a.gc=a.Cj),a.hc==a.Lh&&(a.hc=a.Dj),a.wd=!0);b&&6>a.id&&a.ra&-4&&-1!==a.fc&&
|
||||
(c=a.fc+5,d=a.A.Lb(c),d&1||a.A.Kc(c,d|1))}b&&(a.Cb=a.ra&3,a.uc=(a.rb&24576)>>13,80386>a.A.ia||!(a.ext&64)?(a.ba=2,a.C=65535):(a.ba=4,a.C=-1),a.Uc=a.ba,a.wa=a.C)}else a.load=a.Xh,a.Wh=a.Wk,a.gc=a.Kh,a.hc=a.Mh,a.Cb=a.uc=0,a.fc=-1,a.ne=!1}
|
||||
function Qc(a){this.ia=a.model||8088;var b=a.stepping;this.fd=this.ia+(b?ca(b,16):0);b=0;switch(this.ia){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}gc.call(this,a,b);this.sh=61442;this.ed=1792;this.rh=28672;this.nf=4;this.Ja=255;this.D=80286<=this.ia?eb:db;this.qa=Rc;this.vh=Sc;this.wh=Tc;this.xh=Uc;if(80186<=this.ia&&(this.qa=Rc.slice(),this.vh=Sc.slice(),this.wh=Tc.slice(),this.Ja=31,this.qa[15]=Vc,this.qa[96]=Wc,this.qa[97]=Xc,this.qa[98]=Yc,this.qa[99]=Vc,this.qa[100]=Vc,
|
||||
this.qa[101]=Vc,this.qa[102]=Vc,this.qa[103]=Vc,this.qa[104]=Zc,this.qa[105]=$c,this.qa[106]=ad,this.qa[107]=bd,this.qa[108]=cd,this.qa[109]=dd,this.qa[110]=ed,this.qa[111]=fd,this.qa[192]=gd,this.qa[193]=hd,this.qa[200]=id,this.qa[201]=jd,this.qa[241]=kd,this.vh[7]=ld,this.wh[7]=ld,80286<=this.ia)){this.sh=2;this.ed|=28672;this.nf=0;this.qa[15]=md;this.Fc=nd.slice();for(a=0;a<this.Fc.length;a++)this.Fc[a]||(this.Fc[a]=od);this.qa[84]=pd;this.qa[99]=rd;if(80386<=this.ia){var c;this.rh=0;this.ed|=
|
||||
this.qa[101]=Vc,this.qa[102]=Vc,this.qa[103]=Vc,this.qa[104]=Zc,this.qa[105]=$c,this.qa[106]=ad,this.qa[107]=bd,this.qa[108]=cd,this.qa[109]=dd,this.qa[110]=ed,this.qa[111]=fd,this.qa[192]=gd,this.qa[193]=hd,this.qa[200]=id,this.qa[201]=jd,this.qa[241]=kd,this.vh[7]=ld,this.wh[7]=ld,80286<=this.ia)){this.sh=2;this.ed|=28672;this.nf=0;this.qa[15]=md;this.Fc=nd.slice();for(a=0;a<this.Fc.length;a++)this.Fc[a]||(this.Fc[a]=od);this.qa[84]=pd;this.qa[99]=qd;if(80386<=this.ia){var c;this.rh=0;this.ed|=
|
||||
196608;this.qa[100]=sd;this.qa[101]=td;this.qa[102]=ud;this.qa[103]=vd;for(c in w)this.Fc[+c]=w[c];80546<=this.fd&&80562>=this.fd&&(this.Fc[166]=wd,this.Fc[167]=xd)}}this.qf=[];this.uh=[];this.Yf=0;ic(this);this.ja.Ie=this.ja.Mj=!1;this.zh=0;this.rc=this.W=[];this.ha=this.yb=this.ab=this.of=this.Xd=this.La=this.lc=0;yd(this)}Pa(Qc,gc);
|
||||
function zb(a){var b;if(a.W===a.rc){a.W=Array(a.of);a.rf=new h(null,0,0,5,null,a);rb(a.rf,a.Ta);for(b=0;b<a.of;b++)a.W[b]=a.rf;a.Yd=new h;a.th=Array(512);a.sf=0}else for(var c=0;c<a.pf.length;c++){b=a.pf[c];var d=a.W[b];512>a.sf&&(a.th[a.sf++]=d);a.W[b]=a.rf}a.pf=[]}
|
||||
function Yb(a,b,c,d){var e=(b&-4194304)>>>20,k=a.rc[(a.Nc+e&a.La)>>>a.ha],l=k.Rd(e);if(!(l&1))return d||zd.call(a,b,!1,c),a.Yd;if(!(l&4)&&3==a.Fa)return d||zd.call(a,b,!0,c),a.Yd;var p=(b&4190208)>>>10,l=a.rc[((l&-4096)+p&a.La)>>>a.ha],q=l.Rd(p);if(!(q&1))return d||zd.call(a,b,!1,c),a.Yd;if(!(q&4)&&3==a.Fa)return d||zd.call(a,b,!0,c),a.Yd;c=a.rc[((q&-4096)+(b&4095)&a.La)>>>a.ha];if(d)return c;d=b>>>a.ha;q=a.W[d];b=b&-4096;var v;0<a.sf?(v=a.th[--a.sf],v.Sk(b)):v=new h(b,0,0,6);b=v;b.T=c;b.B=k;b.F=
|
||||
e>>2;b.D=l;b.H=p>>2;cb&&Gb&&c.aa&&!c.controller&&!c.ee&&!c.fe?(b.Pa=c.Pa,b.sd=c.sd,b.aa=c.aa,Db(b,fc)):(b.N=c?Wb(32):0,b.W=c?Wb(96):0,Db(b,dc));rb(b,a.Ta,q);a.W[d]=b;a.pf.push(d);return b}function Ad(a){a.W!==a.rc&&(a.W=a.rc,a.rf=null,a.pf=null,a.Yd=null)}f=Qc.prototype;f.reset=function(){this.ja.Rb&&oc(this);yd(this);ic(this);this.ja.Yc=!1};
|
||||
e>>2;b.D=l;b.H=p>>2;cb&&Gb&&c.aa&&!c.controller&&!c.ee&&!c.fe?(b.Pa=c.Pa,b.sd=c.sd,b.aa=c.aa,Db(b,fc)):(b.N=c?Wb(32):0,b.W=c?Wb(96):0,Db(b,cc));rb(b,a.Ta,q);a.W[d]=b;a.pf.push(d);return b}function Ad(a){a.W!==a.rc&&(a.W=a.rc,a.rf=null,a.pf=null,a.Yd=null)}f=Qc.prototype;f.reset=function(){this.ja.Rb&&oc(this);yd(this);ic(this);this.ja.Yc=!1};
|
||||
function Bd(a,b){var c;switch(b){case 0:c=a.G;break;case 1:c=a.F;break;case 2:c=a.I;break;case 3:c=a.B;break;case 4:c=t(a);break;case 5:c=a.K;break;case 6:c=a.J;break;case 7:c=a.H}return c}function Cd(a,b,c){switch(b){case 0:a.G=c;break;case 1:a.F=c;break;case 2:a.I=c;break;case 3:a.B=c;break;case 4:r(a,c);break;case 5:a.K=c;break;case 6:a.J=c;break;case 7:a.H=c}}
|
||||
function yd(a){a.G=0;a.B=0;a.F=0;a.I=0;a.Ob=0;a.K=0;a.J=0;a.H=0;a.Jb=!1;a.ya=a.Ma=0;a.mc=0;a.yh=0;a.kd=0;a.Ua=65520;a.Ab=0;a.xc=1023;a.ca=a.Fb=0;a.qd=a.Gd=a.pd=a.Dd=0;a.Vb=-1;a.nd=a.Zd=-1;a.Qd=a.sa=-1;a.Ia=new xc(a,1,"CS");a.Ca=new xc(a,2,"DS");a.va=new xc(a,2,"ES");a.Z=new xc(a,3,"SS");r(a,0);Cc(a,0);if(80386<=a.ia){switch(a.fd){case 80562:case 80563:a.I=771;break;case 80578:a.I=772;break;case 80594:a.I=773;break;case 80595:case 80596:a.I=776}a.Ua=16;a.Ch=0;a.od=0;a.Nc=0;a.fb=[0,0,0,0,null,null,
|
||||
0,0];a.tf=[null,null,null,null,null,null,0,0];a.Qa=new xc(a,2,"FS");a.Va=new xc(a,2,"GS");Ad(a)}a.ag=new xc(a,0,"NULL");a.O=a.Ca;a.S=a.Z;a.N=a.Ba=0;a.U=a.na=-1;a.Pc=a.ag;a.Ka=0;if(80286>a.ia)Nc(a,0,65535);else{a.kb=0;a.wc=65535;a.Pb=new xc(a,5,"LDT",!0);a.ka=new xc(a,4,"TSS",!0);a.Na=new xc(a,6,"VER",!0);Nc(a,65520,61440);var b,c=u(a);b=a.Ia;var d=-65536;80386>b.A.ia&&(d&=16777215);b=b.Ea=d;a.da=b+c|0;a.Zf=b+a.Ia.cb|0}Mc(a,0);Ec(a)}
|
||||
|
|
@ -174,7 +174,7 @@ function yh(){this.A-=-1===this.U?2:this.D.$i;return 1}function zh(){var a=this.
|
|||
function m(a,b,c,d){var e=!1;this.ja.Ie?80186<=this.ia&&(e=!0,0>this.Vb?(-1!=this.nd&&(this.Ia.Cb=3,Vd(this,this.nd),this.nd=-1),Wd(this,this.Qd),-1!=this.Zd&&(Cc(this,this.Zd),this.Zd=-1),-1!==this.sa&&(r(this,this.Ob&~this.Z.wa|this.sa-this.Z.Ea),this.sa=-1)):8!=this.Vb?(b=0,a=8):(b=0,a=-1,yd(this),e=d=!1)):Wd(this,this.Qd);var k=a,l=b,p=se(this,this.da);204!=p||this.xc||(d=!1);this.ca&131072&&(6==k&&99==p||13==k&&205==p)&&(d=!1);983040<=this.da&&1048575>=this.da&&(d=!1);if(d){var q=this.ja.Rb,
|
||||
k="Fault 0x"+da(k,2)+(null!=l?" (0x"+da(l,4)+")":"")+" on opcode "+("0x"+da(p,2));d&&q&&(k+=" (blocked by PCjs Debugger)");this.Ha(k);oc(this)}if(d&&e)throw-1;if(e)throw this.Vb=a,tg.call(this,a,b,c),this.Qd=this.da,this.N=1==a?this.N|8192:this.N|4096,a;}function zd(a,b,c){this.od=a;a=0;b&&(a|=1);c&&(a|=2);3==this.Fa&&(a|=4);m.call(this,14,a)}function md(){this.Fc[this.X()].call(this)}function pd(){Kc(this,t(this)&this.C);this.A-=this.D.zc}
|
||||
function Wc(){this.sa=this.xa;var a=t(this)&this.C;Kc(this,this.G&this.C);Kc(this,this.F&this.C);Kc(this,this.I&this.C);Kc(this,this.B&this.C);Kc(this,a);Kc(this,this.K&this.C);Kc(this,this.J&this.C);Kc(this,this.H&this.C);this.A-=this.D.Ui;this.sa=-1}
|
||||
function Xc(){this.sa=this.xa;this.H=this.H&~this.C|n(this);this.J=this.J&~this.C|n(this);this.K=this.K&~this.C|n(this);r(this,t(this)+this.ba);this.B=this.B&~this.C|n(this);this.I=this.I&~this.C|n(this);this.F=this.F&~this.C|n(this);this.G=this.G&~this.C|n(this);this.A-=this.D.Si;this.sa=-1}function Yc(){this.ua[this.X()].call(this,Vf)}function rd(){!(this.Ua&1)||this.ca&131072?m.call(this,6):this.Da[this.X()].call(this,Uf)}function sd(){this.N|=20;this.O=this.S=this.Qa;this.A-=this.D.Oc}
|
||||
function Xc(){this.sa=this.xa;this.H=this.H&~this.C|n(this);this.J=this.J&~this.C|n(this);this.K=this.K&~this.C|n(this);r(this,t(this)+this.ba);this.B=this.B&~this.C|n(this);this.I=this.I&~this.C|n(this);this.F=this.F&~this.C|n(this);this.G=this.G&~this.C|n(this);this.A-=this.D.Si;this.sa=-1}function Yc(){this.ua[this.X()].call(this,Vf)}function qd(){!(this.Ua&1)||this.ca&131072?m.call(this,6):this.Da[this.X()].call(this,Uf)}function sd(){this.N|=20;this.O=this.S=this.Qa;this.A-=this.D.Oc}
|
||||
function td(){this.N|=20;this.O=this.S=this.Va;this.A-=this.D.Oc}function ud(){this.N|=1024;this.Ba&1024||(this.ba^=6,this.C^=-65536,Nd(this));this.A-=this.D.Oc}function vd(){this.N|=2048;this.Ba&2048||(this.Uc^=6,this.wa^=-65536,Ed(this));this.A-=this.D.Oc}function Zc(){Kc(this,this.Ga());this.A-=this.D.zc}function $c(){this.ua[this.X()].call(this,og)}function ad(){Kc(this,this.L());this.A-=this.D.zc}function bd(){this.ua[this.X()].call(this,mg)}
|
||||
function cd(){var a=1,b=0,c=this.wa,d=5;this.Ba&192&&(a=this.F&c,b=1,this.Ba&256&&(d=4));if(a--){var e=this.I&65535;re(this,e,1)&&(e=Nb(this.oa,e,1,this.da-b-1),this.Kc(this.va.hc(this.H&c,1),e),this.H=this.H&~c|this.H+(this.ca&1024?-1:1)&c,this.F=this.F&~c|this.F-b&c,this.A-=d,a&&(Yd(this),this.N|=256))}}
|
||||
function dd(){var a=1,b=0,c=this.wa,d=5;this.Ba&192&&(a=this.F&c,b=1,this.Ba&256&&(d=4));if(a--){var e=this.I&65535;re(this,e,this.ba)&&(e=Nb(this.oa,e,this.ba,this.da-b-1),this.Ub(this.va.hc(this.H&c,this.ba),e),this.H=this.H&~c|this.H+(this.ca&1024?-this.ba:this.ba)&c,this.F=this.F&~c|this.F-b&c,this.A-=d,a&&(Yd(this),this.N|=256))}}
|
||||
|
|
@ -899,8 +899,8 @@ f.yj=function(a,b,c){if(c)this.Ha("Unable to load font ROM (error "+c+": "+a+")"
|
|||
function $k(a,b){if(1==b)return a.ua[0]=xk[0],a.ua[1]=xk[7],a.ua;if(2==b){var c=a.F.ef;if(a.F===a.B){var d=a.B.Ic[0],c=d&7;d&16&&(c|=8);18!=a.B.Ic[1]&&(c|=32)}a.ua[0]=xk[c&15];c=c&32?zk:yk;for(d=0;d<c.length;d++)a.ua[d+1]=xk[c[d]];return a.ua}if(a.S===a.Jb)return xk;a.Va&&b&&!a.ua[16]&&(a.Va=!1);if(!a.Va){var c=a.B,d=c.we,e,k,l,p,q;if(8==b)for(k=0;256>k;k++)l=d[k]||0,p=l<<2&252,q=l>>4&252,l=l>>10&252,a.ua[k]=[p,q,l,255];else{var v=d&&d[255];e=null!=c.Ic[15]?c.Ic:Ak;for(k=0;16>k;k++)l=e[k]&63,v?(l|=
|
||||
(c.Ic[20]&12)<<4,c.Ic[16]&128&&(l&=-49,l|=(c.Ic[20]&3)<<4),l=d[l],p=l<<2&252,q=l>>4&252,l=l>>10&252):(p=(l&4?170:0)|(l&32?85:0),q=(l&2?170:0)|(l&16?85:0),l=(l&1?170:0)|(l&8?85:0)),a.ua[k]=[p,q,l,255]}a.Va=!0}return a.ua}function Kj(a,b,c,d){a.Fb=b;a.kc=c;a.Qa=d}
|
||||
function Wk(a,b){var c=!1;if(window&&a.Fb&&(!b||a.K)){var d=0,e=a.Qa?a.Qa:8,k=$k(a);al(a,3,a.kc[0],d,e,8,a.Fb,k)&&(c=!0);d=a.Qa?0:2048;e=a.Qa?a.Qa:9;al(a,1,a.kc[1],d,e,14,a.Fb,vk,wk)&&(c=!0);a.Qa&&al(a,a.nb,a.kc[1],0,a.Qa,14,a.Fb,k)&&(c=!0)}return c}function al(a,b,c,d,e,k,l,p,q){var v=!1;null!=c&&(bl(a,b,c,d,e,k,l,p,q)&&(v=!0),a.Xd&&bl(a,b<<1,c,d,e,k,l,p,q)&&(v=!0));return v}
|
||||
function bl(a,b,c,d,e,k,l,p,q){var v=!1,B=b&1?0:1,G=a.Fa[b],C=16>p.length?p.length:16;G||(G={sc:e<<B,tc:k<<B,$d:Array(C),Dh:p.slice(0,C),De:q,cg:Array(C)});for(q=0;q<C;q++){var K=p[q],V=G.$d[q]?G.Dh[q]:[];if(K[0]!==V[0]||K[1]!==V[1]||K[2]!==V[2]){var v=G,V=q,X=B,ja=c,ka=d,Ba=e,Ca=k,qd=l,Im=[0,0,0,0],xe=document.createElement("canvas");xe.width=v.sc<<4;xe.height=v.tc<<4;for(var ej=xe.getContext("2d"),Cb=void 0,Oc=void 0,cc=void 0,ye=8>Ca||!ka?Ca:8,Mf=ej.createImageData(v.sc,v.tc),Cb=0;256>Cb;Cb++){for(cc=
|
||||
0;cc<Ca;cc++)for(var Jm=v.De&&V&1&&cc>=Ca-2,Km=qd[cc<ye?ja+Cb*ye+cc:ka+Cb*ye+cc-ye],Nf=0;Nf<=X;Nf++)for(Oc=0;Oc<Ba;Oc++){var fj=Oc<<X,gj=(cc<<X)+Nf,hj=Jm||Km&128>>(8<=Oc&&192<=Cb&&223>=Cb?7:Oc)?K:Im;cl(Mf,fj,gj,hj);X&&cl(Mf,fj+1,gj,hj)}ej.putImageData(Mf,(Cb&15)*v.sc,(Cb>>4)*v.tc)}v.$d[V]="#"+da(K[0],2)+da(K[1],2)+da(K[2],2);v.Dh[V]=K;v.cg[V]=xe;v=!0}}a.Fa[b]=G;return v}function dl(a){0<a.Ja||0<=a.ha?0>a.La&&(a.La=0):a.La=-1}
|
||||
function bl(a,b,c,d,e,k,l,p,q){var v=!1,B=b&1?0:1,G=a.Fa[b],C=16>p.length?p.length:16;G||(G={sc:e<<B,tc:k<<B,$d:Array(C),Dh:p.slice(0,C),De:q,cg:Array(C)});for(q=0;q<C;q++){var K=p[q],V=G.$d[q]?G.Dh[q]:[];if(K[0]!==V[0]||K[1]!==V[1]||K[2]!==V[2]){var v=G,V=q,X=B,ja=c,ka=d,Ba=e,Ca=k,rd=l,Jm=[0,0,0,0],xe=document.createElement("canvas");xe.width=v.sc<<4;xe.height=v.tc<<4;for(var ej=xe.getContext("2d"),Cb=void 0,Oc=void 0,dc=void 0,ye=8>Ca||!ka?Ca:8,Mf=ej.createImageData(v.sc,v.tc),Cb=0;256>Cb;Cb++){for(dc=
|
||||
0;dc<Ca;dc++)for(var Km=v.De&&V&1&&dc>=Ca-2,Lm=rd[dc<ye?ja+Cb*ye+dc:ka+Cb*ye+dc-ye],Nf=0;Nf<=X;Nf++)for(Oc=0;Oc<Ba;Oc++){var fj=Oc<<X,gj=(dc<<X)+Nf,hj=Km||Lm&128>>(8<=Oc&&192<=Cb&&223>=Cb?7:Oc)?K:Jm;cl(Mf,fj,gj,hj);X&&cl(Mf,fj+1,gj,hj)}ej.putImageData(Mf,(Cb&15)*v.sc,(Cb>>4)*v.tc)}v.$d[V]="#"+da(K[0],2)+da(K[1],2)+da(K[2],2);v.Dh[V]=K;v.cg[V]=xe;v=!0}}a.Fa[b]=G;return v}function dl(a){0<a.Ja||0<=a.ha?0>a.La&&(a.La=0):a.La=-1}
|
||||
function Zk(a){if(a.K){for(var b=10;15>=b;b++)if(null==a.F.jb[b])return;var c=a.F.jb[10],b=c&31,d=a.F.jb[11]&31,e=a.F.jb[9]&31,k=!1;a.F===a.B&&(k=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!k||b>e)el(a);else{c=a.F.jb[15]+((a.F.jb[14]&63)<<8);a.ha!=c&&(el(a),a.ha=c);d=d-b+1;if(a.qd!=b||a.Nc!=d)a.qd=b,a.Nc=d;a.Ka=e+1;dl(a)}}}
|
||||
function el(a){if(0<=a.ha){if(void 0!==a.W){var b=a.W[a.ha];if(b&131072){var b=b&-131073,c=a.ha%a.H,d=a.ha/a.H|0;a.K&&a.Fa[a.K]&&(a.Na&&fl(a,c,d,b,a.Na),fl(a,c,d,b));a.W[a.ha]=b}}a.ha=-1}}
|
||||
function gl(a){var b,c=a.F;a.ed=!1;var d=c.Cd[5];if(null!=d){b=1024;var e=0,k=c.Cd[3]&31;switch(d&3){case 0:if(k){e=32;switch(k&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Hc=k&7}break;case 1:e=1;break;case 2:switch(k&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.nb==Lj&&(e=3,c.Hc=k&7)}d&8&&(b=1280);c=c.ye[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.ed=!0));b|=e}return b}
|
||||
|
|
@ -914,7 +914,7 @@ function fl(a,b,c,d,e){var k=d&255,l=d>>8;d=l&15;var p=a.Fa[a.K];p.De&&(d=p.De[d
|
|||
e.fillRect(b,c+k,p.sc,l)):(a.Ka&&a.Ka!==a.Ca&&(k=k*a.Ca/a.Ka|0,l=l*a.Ca/a.Ka|0),a.da.fillStyle=p.$d[d],a.da.fillRect(b,c+k,a.ya,l)))}
|
||||
function nc(a,b){if(a.ja.Qb){var c=!1,d=a.F;d&&(d!==a.B?d.Jc&8&&(c=!0):d.Sd&32&&(c=!0));if(c||b){if(b)jl(a);else if(void 0===a.W)return;var e=!1;!(b||++a.Dd&15)&&0<=a.La&&(a.La++,e=!0);var k=0,l=a.ld,p=a.hb,c=p,q=c+a.Hb;19<=a.Da&&(p=c=655360,q=c+65536);if(kl(a,d)&8||d.ve&&d.ve<d.ih)d.af=(d.jb[12]<<8)+d.jb[13]|0,d.ve=0;var v=d.af;a.K&&(v<<=1);c+=v;v=a.fb;5<=a.nb&&d.jb[19]&&d.jb[19]<<1!=d.jb[1]+1&&(a.ab=d.jb[19]<<(a.K?1:d.jb[20]&64?3:4),v=(a.ab*(a.O-1)+a.H)/a.Pb|0,a.Da<=qk&&(v<<=1));c+v>q&&(v=q-c,0>
|
||||
v&&(v=0));q=c+v;if(d=!b&&a.xa){for(var d=a.oa,B=!0,G=c>>>d.ha;0<v&&G<d.W.length;)d.W[G].Oa&&(d.W[G].Oa=B=!1,d.W[G].Ph=!0),v-=d.yb,G++;d=B}if(d){if(!e)return;if(!a.Ja){if(0>a.ha)return;k=a.ha;l=k+1}}if(a.K){if(a.Fa[a.K]){e=0;p=a.Ja=0;d=1048575;v=a.F.Jc&32;5<=a.nb&&(v=a.F.Ic[16]&8);v&&(p=32768,d&=~p,a.La&2||(d&=-65537));for(c+=k<<1;c<q&&k<l;)v=Kb(a.oa,c),v|=65536,v&p&&(a.Ja++,v&=d),k==a.ha&&(v|=a.La&1?131072:0),a.xa&&v===a.W[k]||(fl(a,k%a.H,k/a.H|0,v,a.Na),a.W[k]=v,e++),c+=2,k++;a.xa=!0;e&&a.Na&&a.da.drawImage(a.Ma,
|
||||
0,0,a.kb,a.vb,a.Fc,a.Gc,a.mc,a.rc);dl(a)}}else if(a.jc){for(var l=q,C,q=c,k=a.Ja=0,e=a.Pb,p=16==e?65536:196608,d=16==e?1:2,v=$k(a,d),G=B=0,K=a.H,V=0,X=a.O,ja=0;q<l;){C=Kb(a.oa,q);if(a.xa&&C===a.W[k])B+=e;else{a.W[k]=C;C=C>>8|(C&255)<<8;var ka=p,Ba=16;B<K&&(K=B);for(var Ca=0;Ca<e;Ca++){var qd=(C&(ka>>=d))>>(Ba-=d);cl(a.Wa,B++,G,v[qd])}B>V&&(V=B);G<X&&(X=G);G>=ja&&(ja=G+1)}q+=2;k++;if(B>=a.H){B=0;G+=2;if(G>a.O)break;G==a.O&&(G=1,q=c+a.jc)}}a.xa=!0;K<a.H&&(a.Na.putImageData(a.Wa,0,0,K,X,V-K,ja-X),a.da.drawImage(a.Ma,
|
||||
0,0,a.kb,a.vb,a.Fc,a.Gc,a.mc,a.rc);dl(a)}}else if(a.jc){for(var l=q,C,q=c,k=a.Ja=0,e=a.Pb,p=16==e?65536:196608,d=16==e?1:2,v=$k(a,d),G=B=0,K=a.H,V=0,X=a.O,ja=0;q<l;){C=Kb(a.oa,q);if(a.xa&&C===a.W[k])B+=e;else{a.W[k]=C;C=C>>8|(C&255)<<8;var ka=p,Ba=16;B<K&&(K=B);for(var Ca=0;Ca<e;Ca++){var rd=(C&(ka>>=d))>>(Ba-=d);cl(a.Wa,B++,G,v[rd])}B>V&&(V=B);G<X&&(X=G);G>=ja&&(ja=G+1)}q+=2;k++;if(B>=a.H){B=0;G+=2;if(G>a.O)break;G==a.O&&(G=1,q=c+a.jc)}}a.xa=!0;K<a.H&&(a.Na.putImageData(a.Wa,0,0,K,X,V-K,ja-X),a.da.drawImage(a.Ma,
|
||||
0,0,a.H,a.O,0,0,a.na,a.va))}else if(a.ed){l=p;e=a.Ja=0;p=$k(a,8);d=a.F.rd;B=v=0;G=a.H;K=0;V=a.O;X=0;ja=a.F.ye[4]&8?4:1;C=a.F.Ic[19]&15;for(ka=a.ab>a.H?a.ab-a.H-C>>3:0;c<q;){k=d[c-l];Ca=4;C||(a.xa&&k===a.W[e]?(v+=Ca,Ca=0):a.W[e]=k,e++);if(Ca){v<G&&(G=v);for(Ba=0;Ba<Ca;Ba++)cl(a.Wa,v++,B,p[k&255]),k>>=8;v>K&&(K=v);B<V&&(V=B);B>=X&&(X=B+1)}c+=ja;if(v>=a.H){v=0;if(++B>a.O)break;c+=ka}}C||(a.xa=!0);G<a.H&&(a.Na.putImageData(a.Wa,0,0,G,V,K-G,X-V),a.da.drawImage(a.Ma,0,0,a.H,a.O,0,0,a.na,a.va))}else{l=p;
|
||||
k=a.Ja=0;e=$k(a);p=a.F.rd;v=d=0;B=a.H;G=0;K=a.O;V=0;X=a.F.Ic[19]&15;for(ja=a.ab>a.H?a.ab-a.H-X>>3:0;c<q;){C=c++-l;C=p[C];Ba=8;X?d?(ka=a.H-d,Ba>ka&&(Ba=ka)):(C<<=X,Ba-=X,a.xa=!1):(a.xa&&C===a.W[k]?(d+=Ba,Ba=0):a.W[k]=C,k++);if(Ba){d<B&&(B=d);for(ka=0;ka<Ba;ka++)Ca=Ck[C&-2139062144]||0,cl(a.Wa,d++,v,e[Ca]),C<<=1;d>G&&(G=d);v<K&&(K=v);v>=V&&(V=v+1)}if(d>=a.H){d=0;if(++v>a.O)break;c+=ja}}X||(a.xa=!0);B<a.H&&(a.Na.putImageData(a.Wa,0,0,B,K,G-B,V-K),a.da.drawImage(a.Ma,0,0,a.H,a.O,0,0,a.na,a.va))}}}}
|
||||
function kl(a,b){var c=0,d=tc(a.A)-b.yg;0>d&&(b.yg=d,d=-d|0);d%b.ug>b.Yk&&(c|=1);d%b.xg>b.$k&&(c|=9);b.ih=d/b.xg|0;return c}f.yk=function(){var a=this.ka,b;a.$b&&(b=a.qc);return b};f.Ll=function(a,b){var c=this.ka;c.Sf=c.qc;c.qc=b&31};f.xk=function(){return ll(this.ka)};f.Kl=function(a,b){ml(this,this.ka,b)};f.zk=function(){return this.ka.Jc};f.Ml=function(a,b){this.ka.Jc=b;Yk(this,!1)};f.Ak=function(){return nl(this,this.ka)};f.dj=function(a,b){this.B.Uf=this.B.Uf&-4|b&3};f.Xj=function(){return this.B.Sd};
|
||||
|
|
@ -949,9 +949,9 @@ f.he=function(a,b){if(this.$b&&this.A&&this.A.ja.Rb)switch(a){case Uk:this.O!=b&
|
|||
function Il(a,b,c){Ha.call(this,"Disk",{id:a.mf+".disk"+da(++Jl,4)},Il);this.controller=a;this.ta=a.ta;this.Ta=a.Ta;this.D=b;this.B=b.name;this.me=b.me;this.Cf=this.F=!1;Kl(this,c,b.ob,b.pb,b.ib,b.tb);this.K=[];this.O=[];this.H=null;this.W=0;this.S=!1;$a(this)}var Jl=0;Pa(Il);f=Il.prototype;f.nc=function(a,b,c,d){this.Ta=d};f.Tb=function(a,b){b||!this.Cf||this.F||($a(this,!1),this.load(this.B,this.J,null,this.Jj,this));return!0};f.Jj=function(){$a(this,!0)};
|
||||
f.Sb=function(a,b){if(this.F){var c,d=0;if(this.S&&!ra("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=Ll(this,!1);)if(d=c[0]){this.controller.Ha('Unable to save "'+this.B+'" (error '+d+")");break}b&&this.F&&(c="action=close&volume="+this.J,c+="&machine="+this.controller.qe(),c+="&user="+this.controller.xd(),pa(qa()+"/api/v1/disk?"+c,!0),this.F=!1);!d&&a&&this.controller.Ha(this.B+" saved")}return!0};
|
||||
function Kl(a,b,c,d,e,k){a.mode=b;a.ob=c;a.pb=d;a.ib=e;a.tb=k;a.A=[];if("preload"!=a.mode){b=Array(a.ob);for(c=0;c<b.length;c++){d=Array(a.pb);for(e=0;e<d.length;e++){k=Array(a.ib);for(var l=1;l<=k.length;l++)k[l-1]=Ml(null,c,e,l,a.tb,"local"==a.mode?0:null);d[e]=k}b[c]=d}a.A=b}a.T=null}
|
||||
f.load=function(a,b,c,d,e){var k=b;if(!this.N)if(this.B=a,this.J=b,this.gj=ea(b),this.N=d,this.Z=e||this.controller,c){var l=this,p=new FileReader;p.onload=function(){var a=p.result,b,c=a?a.byteLength:0,d=ba[c];if(d){l.ob=d[0];l.pb=d[1];l.ib=d[2];l.tb=512;b=l.tb>>2;var e=d=0,a=new DataView(a,0,c);l.A=Array(l.ob);for(c=0;c<l.A.length;c++)for(var k=l.A[c]=Array(l.pb),V=0;V<k.length;V++)for(var X=k[V]=Array(l.ib),ja=0;ja<X.length;ja++){for(var ka=Ml(null,c,V,ja+1,l.tb,0),Ba=ka.data,Ca=0;Ca<b;Ca++,e+=
|
||||
4)var qd=Ba[Ca]=a.getInt32(e,!0),d=d+qd&-1;ka.Cc=b;X[ja]=ka}l.T=d;b=l}else l.Ha("Unrecognized diskette format ("+c+" bytes)");l.N&&(l.N.call(l.controller,l.D,b,l.B,l.J),l.N=null)};p.readAsArrayBuffer(c)}else 0>b.indexOf("/api/v1/dump")&&(a=fa(b),"json"==a||"gz"==a?k=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(k=Nl(this,b),this.Cf=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):-1!==b.indexOf("/",
|
||||
b.length-1)&&(c="dir"),k=qa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.me?"":d)+"&format=json")),pa(k,!0,null,this,this.rj)};
|
||||
f.load=function(a,b,c,d,e){var k=b;if(this.N)return!0;this.B=a;this.J=b;this.gj=ea(b);this.N=d;this.Z=e||this.controller;if(c){var l=this,p=new FileReader;p.onload=function(){var a=p.result,b,c=a?a.byteLength:0,d=ba[c];if(d){l.ob=d[0];l.pb=d[1];l.ib=d[2];l.tb=512;b=l.tb>>2;var e=d=0,a=new DataView(a,0,c);l.A=Array(l.ob);for(c=0;c<l.A.length;c++)for(var k=l.A[c]=Array(l.pb),V=0;V<k.length;V++)for(var X=k[V]=Array(l.ib),ja=0;ja<X.length;ja++){for(var ka=Ml(null,c,V,ja+1,l.tb,0),Ba=ka.data,Ca=0;Ca<b;Ca++,
|
||||
e+=4)var rd=Ba[Ca]=a.getInt32(e,!0),d=d+rd&-1;ka.Cc=b;X[ja]=ka}l.T=d;b=l}else l.Ha("Unrecognized diskette format ("+c+" bytes)");l.N&&(l.N.call(l.controller,l.D,b,l.B,l.J),l.N=null)};p.readAsArrayBuffer(c);return!0}0>b.indexOf("/api/v1/dump")&&(a=fa(b),"json"==a||"gz"==a?k=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(k=Nl(this,b),this.Cf=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):-1!==
|
||||
b.indexOf("/",b.length-1)&&(c="dir"),k=qa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.me?"":d)+"&format=json"));return 0<pa(k,!0,null,this,this.rj).length};
|
||||
f.rj=function(a,b,c){var d=null;this.pe=!1;var e=0>c&&this.ta&&!this.ta.ja.Qb;if(this.Cf)c?this.controller.Ha('Unable to connect to disk "'+this.J+'" (error '+c+": "+b+")",e):(this.F=!0,d=this);else if(c)this.controller.Ha('Unable to load disk "'+this.B+'" (error '+c+": "+a+")",e);else{Ra(this.controller.mf,a,b);try{if(0<ea(this.gj,!0).toLowerCase().indexOf("-readonly"))this.pe=!0;else{var k=b.indexOf("\n");0<k&&1024>k&&0<b.substring(0,k).indexOf("write-protected")&&(this.pe=!0)}var l;"<"==b.substr(0,
|
||||
1)?l=["Missing disk image: "+this.B]:l=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(l.length)if(1==l.length)g(l[0]);else{this.ob=l.length;this.pb=l[0].length;this.ib=l[0][0].length;var p=l[0][0][0];this.tb=p&&p.length||512;for(c=b=0;c<this.ob;c++)for(e=0;e<this.pb;e++)for(k=0;k<this.ib;k++)if(p=l[c][e][k]){var q=p.length;void 0===q&&(q=p.length=512);var q=q>>2,v=p.pattern;void 0===v&&(v=p.pattern=0);var B=p.data;
|
||||
if(void 0===B){var G=p.bytes;if(void 0!==G&&G.length){for(var C=q<<2,K=G.length;K<C;K++)G[K]=v;Ol(p,G,0)}else B=[],v=p.pattern=v|v<<8|v<<16|v<<24,p.data=B;delete p.bytes}Ml(p,c,e);for(C=0;C<B.length;C++)b=b+B[C]&-1}this.A=l;this.T=b;d=this}else g("Empty disk image: "+this.B)}catch(V){g("Disk image error ("+a+"): "+V.message)}}this.N&&(this.N.call(this.Z,this.D,d,this.B,this.J),this.N=null)};function Pl(a,b){var c=a.pb*a.ib,d=b/c|0;return d<a.ob?(c=b%c,a.seek(d,c/a.ib|0,c%a.ib+1)):null}
|
||||
|
|
@ -981,7 +981,7 @@ function $l(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.Xa
|
|||
B[G++];l.Ya=B[G++];l.Za=null;l.za||(l.Td="");C=B[G++];102==C&&(C=!1);if("boolean"==typeof C){var K=C,C=B[G++],B=B[G];K?(G=C,C=q.B[v],em(q,v,!0,!0),C.ke=!0,v=new Il(q,C,"preload"),q.Nh(C,v,G,B,!0)):gm(q,v,C,B,!0)?l.za&&B&&hm(q,C,B,l.za):$a(q,!1)}else void 0!==C&&l.za&&0>l.za.restore(C)&&(p=!1);p&&l.za&&void 0!==l.Ya&&(l.Za=l.za.seek(l.Bb,l.bb,l.sb));p||(e=!1)}a.O=b[c++]||0;a.J=b[c]||0;return e}
|
||||
function dm(a,b){b||(a.S=0);if(a.N)for(var c in a.N){var d=a.N[c],e=d.path,k;if(!(k=d.name))a:{if((k=a.pa.listDisks)&&k.options)for(var l=0;l<k.options.length;l++)if(k.options[l].value==e){k=k.options[l].innerText;break a}k=ea(e,!0)}if(e&&k&&(l=c.charCodeAt(0)-65,0<=l&&l<a.B.length)){!gm(a,l,k,e,!0)&&b&&$a(a,!1);continue}a.Ha("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.S}
|
||||
function Yl(a,b,c,d){var e,k=a.pa.listDrives;if(k&&!isNaN(e=ca(k.value,10))&&0<=e&&e<a.B.length)if(c)if("?"==c)a.Ha('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ea(c)}for(;gm(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var k=a,l=c,p=void 0,p=0;p<k.D.length;p++)if(k.D[p][1]==l){k.D.splice(p,1);break}em(a,
|
||||
e,!1,!0)}}else em(a,e);else a.Ha("Unable to load the selected drive")}function gm(a,b,c,d,e,k){var l=a.B[b];if(d&&l.Td!=d){em(a,b,e,!0);if(l.Mc)return a.Ha("Drive "+b+" busy"),!0;l.Mc=!0;e&&(l.Jd=!0,a.S++);l.ke=!!k;(new Il(a,l,"preload")).load(c,d,k,a.Nh);return!1}return!0}
|
||||
e,!1,!0)}}else em(a,e);else a.Ha("Unable to load the selected drive")}function gm(a,b,c,d,e,k){var l=a.B[b];if(d&&l.Td!=d){em(a,b,e,!0);if(l.Mc)return a.Ha("Drive "+b+" busy"),!0;l.Mc=!0;e&&(l.Jd=!0,a.S++);l.ke=!!k;if(!(new Il(a,l,"preload")).load(c,d,k,a.Nh))return!1}return!0}
|
||||
f.Nh=function(a,b,c,d,e){var k;a.Mc=!1;b&&(k=b.info(),b&&k[0]>a.ob||k[1]>a.pb)&&(this.Ha('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Xa)),b=null);b?(a.za=b,a.hj=c,a.Td=d,hm(this,c,d,b),k=b.info(),this.O|=128,this.Ha('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Xa),a.Jd||e),a.Jf=k[0],a.Re=k[1],a.Se=k[2]):a.ke=!1;a.Jd&&(a.Jd=!1,--this.S||$a(this));Xl(this,a.Xa)};
|
||||
function cm(a,b,c){if((a=a.pa.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
|
||||
function Xl(a,b){if(0<=b&&b<a.B.length){var c=a.B[b],d=a.pa.listDisks,e=a.pa.listDrives;if(d&&e&&d.options&&e.options&&(e=ca(e.value,10),c=c.ke?"?":c.Td,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function em(a,b,c,d){var e=a.B[b];e.za&&(fm(a,e.Td,e.za),e.hj="",e.Td="",e.za=null,e.ke=!1,a.O|=128,d||a.Ha("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||Xl(a,b))}
|
||||
|
|
@ -1013,9 +1013,9 @@ f.$j=function(){var a=this.ga;this.ga&64&&(this.ga&=-129);return a};f.dl=functio
|
|||
function Em(a){var b=!1,c=a.va,d=a.ha&16?1:0,e=a.ha&15,k=a.qa|(a.na&3)<<8,l=a.sa,p=a.O||256;a.Xa=-1;a.D=null;a.N=0;a.ga=80;var q=a.B[d];q?(q.Ed=k,q.bb=e,q.sb=l,q.zb=p*q.tb,c=144<=c?c:c&240,q.Za=null,q.Ya=0,q.errorCode=0,a.Xa=d,a.D=q):c=-1;switch(c&240){case 16:b=!0;break;case 32:a.ga=128;Am(q,function(b){0<=b&&a.T?(Bm(a),a.ga=88):(a.ga=1,a.N=16)},!1);break;case 48:a.ga=8;break;case 64:b=!0;break;case 112:b=!0;break;case 144:a.N=1;b=!0;break;case 145:q.pb=e+1,q.ib=p,b=!0}b&&Bm(a)}
|
||||
function Bm(a){!a.T||a.W&2||Le(a.T,14,120)}
|
||||
function ym(a){a.H=0;var b=Fm(a),c=Fm(a),d=c&32,e=d>>5,k=c&31,l=Fm(a),p=Fm(a),q=l<<2&768|p,v=l&63,B=Fm(a),G=Fm(a),C=a.B[e];C&&(C.Ed=q,C.bb=k,C.sb=v,C.zb=B*C.tb);switch(b){case 3:Gm(a,C?C.errorCode:4);Hm(a,c);Hm(a,l);Hm(a,p);Hm(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=Fm(a));)C&&c<C.be.length&&(C.be[c++]=b);C&&xm(a,C);b=0;C||a.da!=e||(a.da=-1,b=2);Gm(a,b|d);b=-1;break;case 224:case 228:Gm(a,0|d),b=-1}if(0<=b)switch(void 0===C?b=-1:(C.errorCode=0,C.ij=0),b){case 0:Gm(a,0|d);break;case 1:C.Fe=G;Gm(a,
|
||||
0|d);break;case 5:Gm(a,0|d);break;case 8:Lm(a,C,function(b){Gm(a,b|d)});break;case 10:Mm(a,C,function(b){Gm(a,b|d)});break;case 15:Nm(a,C,function(b){Gm(a,b|d)});break;default:Gm(a,2|d)}}function Fm(a){var b=-1;a.H<a.F&&(b=a.K[a.H++]);return b}function Gm(a,b){a.H=a.F=0;void 0!==b&&Hm(a,b);a.T&&Le(a.T,5);a.ga|=32}function Hm(a,b){a.K[a.F++]=b}f.uj=function(a,b,c){void 0===b||0>b?Am(a,c):c(-1,!1)};f.vj=function(a,b){return void 0!==b&&0<=b?Dm(a,b):-1};
|
||||
0|d);break;case 5:Gm(a,0|d);break;case 8:Im(a,C,function(b){Gm(a,b|d)});break;case 10:Mm(a,C,function(b){Gm(a,b|d)});break;case 15:Nm(a,C,function(b){Gm(a,b|d)});break;default:Gm(a,2|d)}}function Fm(a){var b=-1;a.H<a.F&&(b=a.K[a.H++]);return b}function Gm(a,b){a.H=a.F=0;void 0!==b&&Hm(a,b);a.T&&Le(a.T,5);a.ga|=32}function Hm(a,b){a.K[a.F++]=b}f.uj=function(a,b,c){void 0===b||0>b?Am(a,c):c(-1,!1)};f.vj=function(a,b){return void 0!==b&&0<=b?Dm(a,b):-1};
|
||||
f.Gj=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.Ya<a.ce.length?a.ce[a.Ya++]=c:(a.errorCode=20,c=-1)):c=-1;return c};f.Hj=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.errorCode)c=-1;else{a.Lc[a.ge++]=c;if(a.ge==a.Lc.length){a.Ed=a.Lc[0];a.bb=a.Lc[1];a.sb=a.Lc[2];a.zb=128<<a.Lc[3];for(var d=a.ge=0;d<a.zb;d++)if(0>Dm(a,a.Gh)){c=-1;break a}a.xf++}a.xf>=a.ud&&(c=-1)}else c=-1;return c};
|
||||
function Lm(a,b,c){b.errorCode=4;if(b.za&&(b.Za=null,a.T)){b.errorCode=0;mj(a.T,3,a,"dmaRead",b);ij(a.T,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}function Mm(a,b,c){b.errorCode=4;if(b.za&&(b.Za=null,a.T)){b.errorCode=0;mj(a.T,3,a,"dmaWrite",b);ij(a.T,3,function(a){a||(0==b.errorCode&&(b.errorCode=4),20==b.errorCode&&(b.errorCode=0));c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}
|
||||
function Im(a,b,c){b.errorCode=4;if(b.za&&(b.Za=null,a.T)){b.errorCode=0;mj(a.T,3,a,"dmaRead",b);ij(a.T,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}function Mm(a,b,c){b.errorCode=4;if(b.za&&(b.Za=null,a.T)){b.errorCode=0;mj(a.T,3,a,"dmaWrite",b);ij(a.T,3,function(a){a||(0==b.errorCode&&(b.errorCode=4),20==b.errorCode&&(b.errorCode=0));c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}
|
||||
function Nm(a,b,c){b.errorCode=4;b.ce&&b.ce.length==b.zb||(b.ce=Array(b.zb));b.Ya=0;a.T?(b.errorCode=0,mj(a.T,3,a,"dmaWriteBuffer",b),ij(a.T,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)}
|
||||
function Am(a,b,c){var d=-1,e=null,k=0;if(a.errorCode)return b&&b(d,!1,e,k),d;var l=!1!==c?1:0;if(a.Za&&(k=a.Ya,d=a.za.read(a.Za,a.Ya),a.Ya+=l,0<=d))return e=a.Za,b&&b(d,!1,e,k),d;if(b){if(a.za)return a.za.seek(a.Ed,a.bb,a.sb+a.wf,!1,function(c,q){(a.Za=c)?(e=c,k=a.Ya=0,Om(a),d=a.za.read(a.Za,a.Ya),a.Ya+=l):a.errorCode=20;b(d,q,e,k)}),d;a.errorCode=20;b(d,!1,e,k)}return d}
|
||||
function Dm(a,b){if(a.errorCode)return-1;do{if(a.Za&&a.za.write(a.Za,a.Ya++,b))break;a.za&&a.za.seek(a.Ed,a.bb,a.sb+a.wf,!0,function(b){a.Za=b});if(!a.Za){a.errorCode=20;b=-1;break}a.Ya=0;Om(a)}while(1);return b}function Om(a){a.sb++;var b=1-a.wf;a.sb>=a.ib+b&&(a.sb=b,a.bb++,a.bb>=a.pb&&(a.bb=0,a.Ed++))}f.Tk=function(){var a=this.A.I&255;!(this.A.G>>8)&&128<a&&(this.da=a-128);return!0};f.Uk=function(){var a;(a=this.A.G>>8||!this.T)||(a=!(this.T.ec[0].Vc&64));return a?!0:!1};
|
||||
|
|
@ -1025,7 +1025,7 @@ Td.prototype={constructor:Td,value:function(){return this[this.id]},data:functio
|
|||
this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};function Qm(a,b){a[a.id]={};b&&D(a,"parms",b);a.A=!1}function Rm(a){var b=!0;if(ta()){var c=JSON.stringify(a[a.id]);va(a.key,c)||(g("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Sm(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){g(c.message||c),b=!1}return b}function Tm(a,b){return a[a.id][b]||null}function D(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function Um(a,b,c){Ha.call(this,"Computer",a,Um);this.ja.Qb=!1;Vm(this,b);this.S=Zl(this,"autoPower",a);this.F=0;this.ta=a.busWidth||a.buswidth;this.B=Wm;this.T=null;this.J=this.ha=!1;this.ka=Zl(this,"url")||"";this.na=(Math.random()+.1).toString(36).substr(2,12);this.D=Xm(this);if(this.A=Ua("CPU",this.id)){this.Ta=Ua("Debugger",this.id);this.oa=new qb({id:this.mf+".bus",buswidth:this.ta},this.A,this.Ta);var d,e=Sa(this.id);if((this.md=Ua("Panel",this.id))&&this.md.hg)for(b=0;b<e.length;b++)d=e[b],
|
||||
d.Ha=this.md.Ha,d.pc=this.md.pc,d.hg=this.md.hg;for(b=0;b<e.length;b++)d=e[b],d.nc&&d.nc(this,this.oa,this.A,this.Ta);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.N=d:this.B=parseInt(d,10));var k;if(a=Ka&&Ka.state||Zl(this,"state")||(k=!0,a.state))b=this.W=a,k||(this.J=!0,this.B=Wm),this.B&&(this.O=new Td(this,Ym),this.O.load()?b=null:delete this.O);!b&&this.B&&(k=null,this.D&&(k=qa()+"/api/v1/user?req=load&user="+this.D+"&state="+Pm(this,Ym)),b=k)&&(this.J=!0);b?pa(b,!0,null,this,this.qj):$a(this);
|
||||
this.pa.power||(this.S=!0);!c&&this.S&&Zm(this,this.bf)}else g("Unable to find CPU component")}Pa(Um);var Ym="1.20.9",Wm=0;f=Um.prototype;f.qe=function(){return this.na};function Vm(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){g(d.message+" ("+c+")")}}a.K=b}function Zl(a,b,c){var d=null;a.K&&(d=a.K[b]);null==d&&c&&(d=c[b]);null==d&&"object"==typeof resources&&(d=resources[b]);return d}f.xd=function(){return this.D||""};
|
||||
this.pa.power||(this.S=!0);!c&&this.S&&Zm(this,this.bf)}else g("Unable to find CPU component")}Pa(Um);var Ym="1.20.9",Wm=0;f=Um.prototype;f.qe=function(){return this.na};function Vm(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){g(d.message+" ("+c+")")}}a.K=b}function Zl(a,b,c){var d=null;a.K&&(d=a.K[b]);null==d&&c&&(d=c[b]);null==d&&"object"==typeof resources&&resources[b]&&(d=b);return d}f.xd=function(){return this.D||""};
|
||||
f.qj=function(a,b,c){c?(this.N=null,this.J=!1,this.Ha("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(this.T=b,this.ha=!0);$a(this)};function Zm(a,b,c){for(var d=Sa(a.id),e=0;e<=d.length;e++){var k=e<d.length?d[e]:a;if(!ab(k)){ab(k,function(){Zm(a,b,c)});return}}b.call(a,c)}
|
||||
function $m(a,b){var c=new Td(a,Ym,"validate");if(c.load()&&Sm(c)){var d=Tm(c,"timestamp"),e=b?Tm(b,"timestamp"):"unknown";d!=e&&(a.Ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
f.bf=function(a){void 0===a&&(a=this.B||(this.T?1:Wm));if(!this.F){this.F++;var b=!1,c=!1;this.da=!1;var d=this.O||new Td(this,Ym);if(-1==a)b=!0;else if(a>Wm){if(d.load(this.T)){this.H=new Td(this,Ym,"failsafe");this.H.load()&&(an(this,d),a=2,Qm(this.H));D(this.H,"timestamp",la());Rm(this.H);var e=this.B&&!this.J;if(1==a||ra("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=Sm(d)){var k=Tm(d,"code"),l=Tm(d,"data");k&&("ok"==k?d.load(l):("error"==k&&"no machine state"!=
|
||||
|
|
@ -1042,13 +1042,14 @@ function en(a,b){a.D=null;var c=pa(qa()+"/api/v1/user?req=verify&user="+b),d=c[1
|
|||
function dn(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Pm(a,Ym);d.data=c;b=pa(qa()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ha("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Ha(c),va("user",""),a.D=null)}}
|
||||
function jb(a,b,c){a=Sa(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}Da(function(){for(var a=Ya(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Va(c),c=Ya(c,"pcjs","computer"),e=0;e<c.length;e++){var k=c[e],l=Va(k),l=new Um(l,d,!0);Xa(l,k);l.S&&Zm(l,l.bf)}});xa.show.push(function(){for(var a=Ya(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Va(a[b]);(c=Ua("Computer",c.id))&&c.Z&&!c.ja.Qb&&c.bf(-1)}});
|
||||
xa.exit.push(function(){for(var a=Ya(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Va(a[b]);(c=Ua("Computer",c.id))&&c.ja.Qb&&cn(c,!(!c.B||c.N),!0)}});var fn=0;function gn(a,b,c,d,e,k){e("Loading "+a+"...");pa(a,!0,null,null,function(l,p,q){q?(p||(p="unable to load "+a+" ("+q+")"),k(p,null)):hn(p,a,b,c,d,e,k)})}
|
||||
function hn(a,b,c,d,e,k,l){function p(a,k){if(k)l(k,null);else{if(c){var p=b;p&&0>p.indexOf("/")&&(p=window.location.pathname+p);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+p+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(p?' url="'+p+'"':""))}p=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(p=new window.ActiveXObject("Microsoft.XMLDOM"),
|
||||
p.async=!1,p.loadXML(a)):p=(new window.DOMParser).parseFromString(a,"text/xml")}catch(G){p=null,a=G.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,p)}}a?e?jn(a,k,p):p(a,null):l("no data"+(b?" for file: "+b:""),null)}
|
||||
function hn(a,b,c,d,e,k,l){function p(a,k){if(k)l(k,null);else{if(c){Ra(c,b,a);var p=b;p&&0>p.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(p=window.location.pathname+p);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+p+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(p?' url="'+p+'"':""))}p=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in
|
||||
window?(p=new window.ActiveXObject("Microsoft.XMLDOM"),p.async=!1,p.loadXML(a)):p=(new window.DOMParser).parseFromString(a,"text/xml")}catch(G){p=null,a=G.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,p)}}a?e?jn(a,k,p):p(a,null):l("no data"+(b?" for file: "+b:""),null)}
|
||||
function jn(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,!0,null,null,function(k,l,p){if(p||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+p+")");else{if(k=d[3])if(p=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=p[0],v,B=/( [a-z]+=)(['"])(.*?)\2/g;v=B.exec(k);)q=0>q.indexOf(v[1])?q.replace(">",v[0]+">"):q.replace(new RegExp(v[1]+"(['\"])(.*?)\\1"),v[0]);p[0]!=q&&(l=l.replace(p[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],l);jn(a,b,c)}})}else c(a,null)}
|
||||
function kn(a,b,c,d){function e(a){if(void 0===p){var b=l&&Ya(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ha(a))}function k(a){e("Error: "+a);q&&(--fn||Fa(!0));q=!1}var l,p,q=!0;fn++;Qa[a]={};try{if(l=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var v=function(d,p){p?(Ra(a,b,d),gn(c,null,null,!1,e,function(d,q){if(q)if(Ra(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var v=p.transformNode(q);v?(l.outerHTML=v,--fn||Fa(!0)):k("transformNodeToObject failed")}else document.implementation&&
|
||||
document.implementation.createDocument?(v=new XSLTProcessor,v.importStylesheet(q),(v=v.transformToFragment(p,document))?l.parentNode?(l.parentNode.replaceChild(v,l),--fn||Fa(!0)):k("invalid machine element: "+a):k("transformToFragment failed")):k("unable to transform XML: unsupported browser");else k(d)})):k(d)};"<"!=b.charAt(0)?gn(b,a,d,!0,e,v):hn(b,null,a,d,!1,e,v)}else k("missing machine element: "+a)}catch(B){k(B.message)}return q}window.embedPC=function(a,b,c,d){Fa(!1);return kn(a,b,c,d)};
|
||||
window.enableEvents=Fa;window.sendEvent=Ga;
|
||||
function ln(a,b,c,d){var e;c=d[0];var k,l;b&&((e=b.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/))||(b=""));if(b){b=Qa[c];var p={},q;for(q in b){var v=b[q],B=fa(q);if("xml"==B){for(B=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;k=B.exec(b[q]);){var G=k[2];G&&(b[G]||(v=v.replace(k[0],"")))}k=q=ea(q)}else"xsl"==B&&(l=q=ea(q));p[q]=v}d[1]&&(p[q="parms"]=d[1]);d[2]&&(p[q="state"]=d[2]);k&&l?(d=JSON.stringify(p),a=ea(a,!0),b=e[1]+"var resources="+d+";"+e[2]+e[3],e="data:application/javascript,"+
|
||||
encodeURI(b),d=document.createElement("a"),"string"==typeof d.download?(d.href=e,d.download=a+".json",document.body.appendChild(d),d.click(),document.body.removeChild(d),e='Check your Downloads folder for "'+a+'.json", '+('copy it to your web server as "'+a+'.js", and then add the following to your web page:\n\n'),e+='<div id="'+c+'"></div>\n',e+="...\n",e+='<script type="text/javascript" src="'+a+'.js">\x3c/script>\n',e+='<script type="text/javascript">embedPC("'+c+'","'+k+'","'+l+'");\x3c/script>\n\n',
|
||||
e+="The machine should appear where the <div> is located.",g(e)):window.open(e)):g("Missing XML/XSL resources")}else g("Unabled to download script")}window.savePC=function(a,b){var c=Ua("Computer",a),d=Ua("Debugger",a);if(c){var e=cn(c,!0),k=c.K?JSON.stringify(c.K):null;b||(b="/versions/pcjs/1.20.9/pc"+(d?"-dbg":"")+".js");pa(b,!0,null,null,ln,[a,k,e,c,d]);return!0}g("Unable to identify machine '"+a+"'");return!1};})();
|
||||
function kn(a,b,c,d){function e(a){if(void 0===p){var b=l&&Ya(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ha(a))}function k(a){e("Error: "+a);q&&(--fn||Fa(!0));q=!1}var l,p,q=!0;fn++;Qa[a]={};try{if(l=document.getElementById(a)){var v;if("object"==typeof resources&&(v=resources.css)){var B=document.head||document.getElementsByTagName("head")[0],G=document.createElement("style");G.type="text/css";G.styleSheet?G.styleSheet.cssText=v:G.appendChild(document.createTextNode(v));B.appendChild(G)}c||
|
||||
(c="/versions/pcjs/1.20.9/components.xsl");v=function(d,p){p?gn(c,null,null,!1,e,function(d,q){if(q)if(Ra(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var v=p.transformNode(q);v?(l.outerHTML=v,--fn||Fa(!0)):k("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(v=new XSLTProcessor,v.importStylesheet(q),(v=v.transformToFragment(p,document))?l.parentNode?(l.parentNode.replaceChild(v,l),--fn||Fa(!0)):k("invalid machine element: "+
|
||||
a):k("transformToFragment failed")):k("unable to transform XML: unsupported browser");else k(d)}):k(d)};"<"!=b.charAt(0)?gn(b,a,d,!0,e,v):hn(b,null,a,d,!1,e,v)}else k("missing machine element: "+a)}catch(C){k(C.message)}return q}window.embedPC=function(a,b,c,d){Fa(!1);return kn(a,b,c,d)};window.enableEvents=Fa;window.sendEvent=Ga;
|
||||
function ln(a,b,c,d){if(!c&&b){d.push(b);a=Qa[d[0]];b=null;for(var e in a)if(-1!==e.indexOf("components.xsl",e.length-14)){b=e.replace(".xsl",".css");break}b?pa(b,!0,null,null,mn,d):mn(0,null,0,d)}else g("Error ("+c+") requesting "+a)}
|
||||
function mn(a,b,c,d){var e,k,l;a=d[0];c=d[1];e=d[4];e=e.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var p=Qa[a],q={},v;for(v in p){var B=p[v],G=fa(v);if("xml"==G){for(G=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;k=G.exec(p[v]);){var C=k[2];C&&(p[C]||(B=B.replace(k[0],"")))}k=v=ea(v)}else"xsl"==G&&(l=v=ea(v));q[v]=B}b&&(q[v="css"]=b);d[2]&&(q[v="parms"]=d[2]);d[3]&&(q[v="state"]=d[3]);k&&l?(b=JSON.stringify(q),e=e[1]+"var resources="+b+";"+e[2]+e[3],b="data:application/javascript,"+
|
||||
(wa("Firefox")?encodeURIComponent(e):encodeURI(e)),d=document.createElement("a"),"string"==typeof d.download&&2E6>e.length?(d.href=b,d.download=c+".json",document.body.appendChild(d),d.click(),document.body.removeChild(d)):window.open(b),b='Check your Downloads folder for "'+c+'.json", '+('copy it to your web server as "'+c+'.js", and then add the following to your web page:\n\n'),b+='<div id="'+a+'"></div>\n',b+="...\n",b+='<script type="text/javascript" src="'+c+'.js">\x3c/script>\n',b+='<script type="text/javascript">embedPC("'+
|
||||
a+'","'+k+'","'+l+'");\x3c/script>\n\n',b+="The machine should appear where the <div> is located.",g(b)):g("Missing XML/XSL resources")}window.savePC=function(a,b){var c=Ua("Computer",a),d=Ua("Debugger",a);if(c){var e=cn(c,!0),c=c.K?JSON.stringify(c.K):null;b||(b="/versions/pcjs/1.20.9/pc"+(d?"-dbg":"")+".js");pa(b,!0,null,null,ln,[a,ea(b,!0),c,e]);return!0}g("Unable to identify machine '"+a+"'");return!1};})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue