More PC8080 structural fixes
This commit is contained in:
parent
8971097b3b
commit
28e4eabd8d
14 changed files with 75 additions and 54 deletions
|
|
@ -9,7 +9,11 @@
|
|||
<rom id="romF" addr="0x1000" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-F.json"/>
|
||||
<rom id="romE" addr="0x1800" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-E.json"/>
|
||||
<ram id="ram" addr="0x2000" size="0x2000"/>
|
||||
<video id="video" screenwidth="256" screenheight="244" scale="true" aspect="1.33" rotate="90" addr="0x2000"/>
|
||||
<video id="video" screenwidth="256" screenheight="224" scale="true" aspect="1.33" rotate="90" addr="0x2000" pos="left" padding="8px">
|
||||
<menu>
|
||||
<title>256x224 Screen</title>
|
||||
</menu>
|
||||
</video>
|
||||
<panel ref="/devices/pc8080/panel/default.xml"/>
|
||||
<debugger id="debugger"/>
|
||||
</machine>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<panel id="panel" width="100%" padding="8px">
|
||||
<panel id="panel" width="500px" pos="left" padding="8px">
|
||||
<name>Control Panel</name>
|
||||
<control type="container" class="pcjs-textarea" width="58%" padbottom="8px" padright="8px">
|
||||
<control type="textarea" binding="print" width="100%" height="260px" pos="relative" padbottom="4px" style="resize:vertical;"/>
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
<control type="button" binding="clear">Clear</control>
|
||||
</control>
|
||||
</control>
|
||||
<control type="container" class="pcjs-registers" width="38%" padleft="8px">
|
||||
<control type="container" class="pcjs-registers" width="20%" padleft="8px">
|
||||
<control type="register" label="P" binding="PS" width="20px" padright="8px" padbottom="8px">00</control>
|
||||
<control type="register" label="A" binding="A" width="20px" padright="8px" padbottom="8px">00</control>
|
||||
<control pos=""/>
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
float: left;
|
||||
font-family: "Lucida Console", monospace;
|
||||
}
|
||||
.pcjs-control textarea {
|
||||
.pcjs-controls textarea {
|
||||
font-family: Monaco, monospace;
|
||||
font-size: x-small;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
<xsl:param name="generator" select="'client'"/>
|
||||
|
||||
<xsl:variable name="MACHINECLASS">pc</xsl:variable>
|
||||
<xsl:variable name="CSSCLASS">pcjs</xsl:variable>
|
||||
<xsl:variable name="APPCLASS">pcjs</xsl:variable>
|
||||
<xsl:variable name="APPVERSION">1.21.7</xsl:variable>
|
||||
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
|
||||
|
|
@ -57,7 +58,13 @@
|
|||
<xsl:variable name="machineStyle">
|
||||
<xsl:if test="@float">float:<xsl:value-of select="@float"/></xsl:if>
|
||||
</xsl:variable>
|
||||
<div id="{$machine}" class="machine {@class}js" style="{$machineStyle}">
|
||||
<xsl:variable name="machineClass">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@class = 'pc' or @class = 'c1p'"><xsl:value-of select="@class"/>js</xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<div id="{$machine}" class="machine {$machineClass}" style="{$machineStyle}">
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="machineState">
|
||||
|
|
@ -203,7 +210,7 @@
|
|||
<xsl:if test="$component != 'machine'">
|
||||
<xsl:apply-templates select="name" mode="component"/>
|
||||
</xsl:if>
|
||||
<div class="{$APPCLASS}-container" style="{$border}{$style}">
|
||||
<div class="{$CSSCLASS}-container" style="{$border}{$style}">
|
||||
<xsl:if test="$component = 'machine'">
|
||||
<xsl:apply-templates select="menu" mode="machine"/>
|
||||
</xsl:if>
|
||||
|
|
@ -214,7 +221,7 @@
|
|||
<div class="{$APPCLASS}-{$class}-object" data-value="{{id:'{$id}',name:'{$name}'{$comment}{$parms}}}"> </div>
|
||||
</xsl:if>
|
||||
<xsl:if test="control">
|
||||
<div class="{$APPCLASS}-controls">
|
||||
<div class="{$CSSCLASS}-controls">
|
||||
<xsl:apply-templates select="control" mode="component"/>
|
||||
</div>
|
||||
</xsl:if>
|
||||
|
|
@ -225,11 +232,11 @@
|
|||
</div>
|
||||
<xsl:if test="$component = 'machine'">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$url != ''"><div class="{$APPCLASS}-reference">[<a href="{$url}">XML</a>]</div></xsl:when>
|
||||
<xsl:when test="$url != ''"><div class="{$CSSCLASS}-reference">[<a href="{$url}">XML</a>]</div></xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
<xsl:if test="$MACHINECLASS = 'pc'"><div class="{$APPCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if>
|
||||
<div class="{$APPCLASS}-copyright">
|
||||
<xsl:if test="$MACHINECLASS = 'pc'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if>
|
||||
<div class="{$CSSCLASS}-copyright">
|
||||
<a href="http://{$SITEHOST}" target="_blank">PCjs</a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a>
|
||||
</div>
|
||||
<div style="clear:both"> </div>
|
||||
|
|
@ -248,7 +255,7 @@
|
|||
</xsl:template>
|
||||
|
||||
<xsl:template match="name" mode="component">
|
||||
<div class="{$APPCLASS}-name"><xsl:apply-templates/></div>
|
||||
<div class="{$CSSCLASS}-name"><xsl:apply-templates/></div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="menu" mode="component">
|
||||
|
|
@ -256,7 +263,7 @@
|
|||
</xsl:template>
|
||||
|
||||
<xsl:template match="title" mode="component">
|
||||
<div class="{$APPCLASS}-menu"><xsl:apply-templates/></div>
|
||||
<div class="{$CSSCLASS}-menu"><xsl:apply-templates/></div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="control" mode="component">
|
||||
|
|
@ -345,7 +352,7 @@
|
|||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="subClass">
|
||||
<xsl:if test="@label"><xsl:text> </xsl:text><xsl:value-of select="$APPCLASS"/><xsl:text>-label</xsl:text></xsl:if>
|
||||
<xsl:if test="@label"><xsl:text> </xsl:text><xsl:value-of select="$CSSCLASS"/><xsl:text>-label</xsl:text></xsl:if>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="labelWidth">
|
||||
<xsl:choose>
|
||||
|
|
@ -363,12 +370,12 @@
|
|||
</xsl:variable>
|
||||
<xsl:if test="@label">
|
||||
<xsl:if test="not(@labelpos) or @labelpos = 'left'">
|
||||
<div class="{$APPCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
|
||||
<div class="{$CSSCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@type = 'canvas'">
|
||||
<canvas class="{$APPCLASS}-binding {$APPCLASS}-canvas" width="{@width}" height="{@height}" style="-webkit-user-select:none;{$border}{$fontsize}{$style}" data-value="{{{$type},{$binding}}}"><xsl:apply-templates/></canvas>
|
||||
<canvas class="{$APPCLASS}-binding {$CSSCLASS}-canvas" width="{@width}" height="{@height}" style="-webkit-user-select:none;{$border}{$fontsize}{$style}" data-value="{{{$type},{$binding}}}"><xsl:apply-templates/></canvas>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'button'">
|
||||
<button class="{$APPCLASS}-binding" style="-webkit-user-select:none;{$border}{$width}{$height}{$fontsize}{$style}" data-value="{{{$type},{$binding},{$value}}}"><xsl:apply-templates/></button>
|
||||
|
|
@ -392,14 +399,14 @@
|
|||
</xsl:when>
|
||||
<xsl:when test="@type = 'file'">
|
||||
<form class="{$APPCLASS}-binding" data-value="{{{$type},{$binding}}}">
|
||||
<fieldset class="{$APPCLASS}-fieldset">
|
||||
<fieldset class="{$CSSCLASS}-fieldset">
|
||||
<input type="file"/>
|
||||
<input type="submit" value="Mount" disabled="true"/>
|
||||
</fieldset>
|
||||
</form>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'led'">
|
||||
<div class="{$APPCLASS}-binding {$APPCLASS}-{@type}" data-value="{{{$type},{$binding}}}"><xsl:value-of select="."/></div>
|
||||
<div class="{$APPCLASS}-binding {$CSSCLASS}-{@type}" data-value="{{{$type},{$binding}}}"><xsl:value-of select="."/></div>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'separator'">
|
||||
<hr/>
|
||||
|
|
@ -411,12 +418,12 @@
|
|||
<div style="clear:both"> </div>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<div class="{$APPCLASS}-binding{$subClass} {$APPCLASS}-{@type}" style="-webkit-user-select:none;{$border}{$width}{$height}{$fontsize}{$style}" data-value="{{{$type},{$binding}}}"><xsl:apply-templates/></div>
|
||||
<div class="{$APPCLASS}-binding{$subClass} {$CSSCLASS}-{@type}" style="-webkit-user-select:none;{$border}{$width}{$height}{$fontsize}{$style}" data-value="{{{$type},{$binding}}}"><xsl:apply-templates/></div>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:if test="@label">
|
||||
<xsl:if test="@labelpos = 'right'">
|
||||
<div class="{$APPCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
|
||||
<div class="{$CSSCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
|
||||
</xsl:if>
|
||||
<div style="clear:both"> </div>
|
||||
</xsl:if>
|
||||
|
|
|
|||
|
|
@ -540,7 +540,7 @@ function ko(a,b,c,d,e){if(b.Ac<b.nh){e&&!A(a)||x(a,c,d,e,"CRTC."+b.kg[b.Ac]);b.m
|
|||
var gn={948:Z.prototype.Gl,949:Z.prototype.Fl,952:Z.prototype.Hl,954:Z.prototype.Il},hn={948:Z.prototype.an,949:Z.prototype.$m,952:Z.prototype.bn},jn={980:Z.prototype.kl,981:Z.prototype.jl,984:Z.prototype.ll,985:Z.prototype.il,986:Z.prototype.ml},kn={980:Z.prototype.Em,981:Z.prototype.Dm,984:Z.prototype.Fm,985:Z.prototype.Cm},ln={960:Z.prototype.el,961:Z.prototype.Ck,962:Z.prototype.Sl,964:Z.prototype.Ql,965:Z.prototype.Pl,974:Z.prototype.zl,975:Z.prototype.yl},mn={954:Z.prototype.ek,960:Z.prototype.dk,
|
||||
961:Z.prototype.dk,962:Z.prototype.cn,964:Z.prototype.jn,965:Z.prototype.hn,970:Z.prototype.Wm,972:Z.prototype.Vm,974:Z.prototype.Um,975:Z.prototype.Tm,986:Z.prototype.ek},nn={963:Z.prototype.Tl,966:Z.prototype.rl,967:Z.prototype.sl,969:Z.prototype.ql,970:Z.prototype.Ul,972:Z.prototype.Vl},on={963:Z.prototype.mn,966:Z.prototype.Km,967:Z.prototype.Lm,968:Z.prototype.Mm,969:Z.prototype.Jm};
|
||||
Qa(function(){for(var a=nb(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=jb(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","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=ya().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
|
||||
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+Ya.aspect;f&&.3<=f&&3.33>=f&&(Pa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ga("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);mb(d,c)}});
|
||||
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ya.aspect);f&&.3<=f&&3.33>=f&&(Pa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ga("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);mb(d,c)}});
|
||||
function no(a){this.W=a.adapter;switch(this.W){case 1:this.V=956;this.C=7;break;case 2:this.V=888;this.C=7;break;case 3:this.V=632;this.C=5;break;default:w("Unrecognized parallel adapter #"+this.W);return}this.A=this.B=null;Ua.call(this,"ParallelPort",a,no,4194304);a=a.binding;"console"==a?this.B="":kb(this,a,oo)}db(no);var oo="buffer";m=no.prototype;m.Qb=function(a,b,c){switch(b){case oo:return this.qa[b]=this.A=c,!0}return!1};
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet");hc(b,this,po,this.V);lc(b,this,qo,this.V);rb(this)};m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){ro(this)};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Yb;c[b]=this.Bf;N(a,0,c);return a.data()};m.restore=function(a){return ro(this,a[0])};
|
||||
function ro(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.L=b[c++];a.Yb=b[c++];a.Bf=b[c];return!0}m.tl=function(a,b){var c=this.L;x(this,a,null,b,"DATA",c);return c};m.Rl=function(a,b){var c=this.Yb;x(this,a,null,b,"STAT",c);return c};m.pl=function(a,b){var c=this.Bf;x(this,a,null,b,"CTRL",c);return c};
|
||||
|
|
@ -804,8 +804,8 @@ function dd(a,b){for(var c=0;c<a.L.length;c++)qn(a.L[c],b);if(a.C&&(c=a.C,c.Ja))
|
|||
h.N.save(),h.N.translate(f,k),h.N.rotate(-Math.PI/2),f=k=0),l<h.X&&(h.X=l,h.ga=h.X+"px Monaco, Lucida Console, Courier New"),g=k,h.C=f,h.U=g,h=c,e=sc[e.type]+" ("+(e.Ud*c.ea.Nb/1024|0)+"Kb)",h.N.font=h.ga,h.C-=h.N.measureText(e).width>>1,h.U+=(h.X>>1)-2,Jb(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Jb(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}}
|
||||
Qa(function(){for(var a=nb(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=jb(c),c=nb(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=jb(f),g=new Tr(g,d,!0);mb(g,f);g.ga&&Zr(g,g.$f)}});La.show.push(function(){for(var a=nb(document,"pcjs","computer"),b=0;b<a.length;b++){var c=jb(a[b]);(c=ib("Computer",c.id))&&c.ka&&!c.la.cc&&c.$f(-1)}});
|
||||
La.exit.push(function(){for(var a=nb(document,"pcjs","computer"),b=0;b<a.length;b++){var c=jb(a[b]);(c=ib("Computer",c.id))&&c.la.cc&&Nr(c,!(!c.A||c.X),!0)}});var es=0;function fs(a,b,c,d,e,f){e("Loading "+a+"...");va(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):rs(h,a,b,c,d,e,f)})}
|
||||
function rs(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){fb(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
|
||||
"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){h=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?ss(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function rs(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){fb(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcjs$2"));
|
||||
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){h=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?ss(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function ss(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");va(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);ss(a,b,c)}})}else c(a,null)}
|
||||
function ts(a,b,c,d){function e(a){if(void 0===h){var b=g&&nb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function f(a){e("Error: "+a);k&&(--es||Sa(!0));k=!1}var g,h,k=!0;es++;eb[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=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));n.appendChild(q)}c||
|
||||
|
|
|
|||
|
|
@ -501,7 +501,7 @@ function Fl(a,b,c){if(b.sc<b.pg){b.ab[b.sc]=c;if(12==b.sc||13==b.sc)if(Dl(a,b)&1
|
|||
var bl={948:Y.prototype.xk,949:Y.prototype.wk,952:Y.prototype.yk,954:Y.prototype.zk},cl={948:Y.prototype.Ll,949:Y.prototype.Kl,952:Y.prototype.Ml},dl={980:Y.prototype.ak,981:Y.prototype.$j,984:Y.prototype.bk,985:Y.prototype.Zj,986:Y.prototype.ck},el={980:Y.prototype.ol,981:Y.prototype.nl,984:Y.prototype.pl,985:Y.prototype.ml},fl={960:Y.prototype.Vj,961:Y.prototype.wj,962:Y.prototype.Jk,964:Y.prototype.Hk,965:Y.prototype.Gk,974:Y.prototype.qk,975:Y.prototype.pk},gl={954:Y.prototype.dj,960:Y.prototype.cj,
|
||||
961:Y.prototype.cj,962:Y.prototype.Nl,964:Y.prototype.Tl,965:Y.prototype.Sl,970:Y.prototype.Gl,972:Y.prototype.Fl,974:Y.prototype.El,975:Y.prototype.Dl,986:Y.prototype.dj},hl={963:Y.prototype.Kk,966:Y.prototype.hk,967:Y.prototype.ik,969:Y.prototype.gk,970:Y.prototype.Lk,972:Y.prototype.Mk},il={963:Y.prototype.Vl,966:Y.prototype.ul,967:Y.prototype.vl,968:Y.prototype.wl,969:Y.prototype.tl};
|
||||
Ea(function(){for(var a=Za(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=Wa(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","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
|
||||
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+La.aspect;f&&.3<=f&&3.33>=f&&(Da("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ya("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);Ya(d,c)}});
|
||||
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||La.aspect);f&&.3<=f&&3.33>=f&&(Da("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ya("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);Ya(d,c)}});
|
||||
function Hl(a){this.I=a.adapter;switch(this.I){case 1:this.G=956;this.D=7;break;case 2:this.G=888;this.D=7;break;case 3:this.G=632;this.D=5;break;default:n("Unrecognized parallel adapter #"+this.I);return}this.B=this.C=null;Ia.call(this,"ParallelPort",a,Hl);a=a.binding;"console"==a?this.C="":Xa(this,a,Il)}Qa(Hl);var Il="buffer";l=Hl.prototype;l.zb=function(a,b,c){switch(b){case Il:return this.ka[b]=this.B=c,!0}return!1};
|
||||
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.P=kb(a,"ChipSet");Nb(b,this,Jl,this.G);Pb(b,this,Kl,this.G);ab(this)};l.Vb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};l.reset=function(){Ll(this)};l.save=function(){var a=new ce(this),b=0,c=[];c[b++]=this.H;c[b++]=this.Db;c[b]=this.Ie;C(a,0,c);return a.data()};l.restore=function(a){return Ll(this,a[0])};
|
||||
function Ll(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.H=b[c++];a.Db=b[c++];a.Ie=b[c];return!0}l.jk=function(){return this.H};l.Ik=function(){return this.Db};l.fk=function(){return this.Ie};
|
||||
|
|
@ -622,8 +622,8 @@ function yc(a,b){for(var c=0;c<a.I.length;c++)kl(a.I[c],b);if(a.D&&(c=a.D,c.ua))
|
|||
h.G.translate(f,k),h.G.rotate(-Math.PI/2),f=k=0),m<h.L&&(h.L=m,h.S=h.L+"px Monaco, Lucida Console, Courier New"),g=k,h.D=f,h.K=g,h=c,e=Vb[e.type]+" ("+(e.hd*c.ha.vb/1024|0)+"Kb)",h.G.font=h.S,h.D-=h.G.measureText(e).width>>1,h.K+=(h.L>>1)-2,pb(h,e),h.da&&(h.G.restore(),h.da=!1)}}else pb(c,"This space intentionally left blank");c.context.drawImage(c.P,0,0,c.P.width,c.P.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}}
|
||||
Ea(function(){for(var a=Za(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Wa(c),c=Za(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=Wa(f),g=new pn(g,d,!0);Ya(g,f);g.ba&&vn(g,g.df)}});Aa.show.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.Y&&!c.ea.Rb&&c.df(-1)}});
|
||||
Aa.exit.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.ea.Rb&&zn(c,!(!c.B||c.P),!0)}});var Cn=0;function Dn(a,b,c,d,e,f){e("Loading "+a+"...");pa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):En(h,a,b,c,d,e,f)})}
|
||||
function En(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){Sa(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
|
||||
"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){h=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?Fn(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function En(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){Sa(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcjs$2"));
|
||||
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){h=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?Fn(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Fn(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Fn(a,b,c)}})}else c(a,null)}
|
||||
function Gn(a,b,c,d){function e(a){if(void 0===h){var b=g&&Za(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function f(a){e("Error: "+a);k&&(--Cn||Ga(!0));k=!1}var g,h,k=!0;Cn++;Ra[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=m:x.appendChild(document.createTextNode(m));p.appendChild(x)}c||
|
||||
|
|
|
|||
|
|
@ -111,13 +111,13 @@
|
|||
line-height: 19px; /* the equivalent of "vertical-align: middle" for single-line elements */
|
||||
background-color: #000000;
|
||||
}
|
||||
.pcjs-video-object {
|
||||
.pcjs-screen {
|
||||
clear: both;
|
||||
height: auto;
|
||||
position: relative;
|
||||
line-height: 0; /* this is just an attempt to eliminate the side-effects of any whitespace between inner DIVs */
|
||||
}
|
||||
.pcjs-video-object textarea {
|
||||
.pcjs-screen textarea {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
|
|
|
|||
|
|
@ -218,8 +218,11 @@
|
|||
<xsl:if test="$component != 'machine'">
|
||||
<xsl:apply-templates select="menu" mode="component"/>
|
||||
</xsl:if>
|
||||
<xsl:variable name="objectClass">
|
||||
<xsl:value-of select="$APPCLASS"/><xsl:text>-</xsl:text><xsl:value-of select="$class"/><xsl:text>-object</xsl:text><xsl:if test="$class = 'video'"><xsl:text> </xsl:text><xsl:value-of select="$CSSCLASS"/><xsl:text>-screen</xsl:text></xsl:if>
|
||||
</xsl:variable>
|
||||
<xsl:if test="$class != '' and $component != 'machine'">
|
||||
<div class="{$APPCLASS}-{$class}-object" data-value="{{id:'{$id}',name:'{$name}'{$comment}{$parms}}}"> </div>
|
||||
<div class="{$objectClass}" data-value="{{id:'{$id}',name:'{$name}'{$comment}{$parms}}}"> </div>
|
||||
</xsl:if>
|
||||
<xsl:if test="control">
|
||||
<div class="{$CSSCLASS}-controls">
|
||||
|
|
|
|||
|
|
@ -156,8 +156,8 @@ Z.prototype.start=function(){for(var a in this.Y)if("cpu"!=a)for(var b=0;b<this.
|
|||
function wb(a){var b=null,c;for(c in a.Y)for(var d=0;d<a.Y[c].length;d++){var e=a.Y[c][d];if(e){if(!K(e)){K(e,function(a){return function(){wb(a)}}(a));return}"cpu"==c?b=e:e.ha&&e.ha(!0,a)}}a.X();a.l("C1Pjs v1.21.7\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.ha(!0,a)}
|
||||
x(function(){for(var a=G(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=E(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var n=d.modules[m];if(!m){if("cpu"!=n.type)break;k=n.start;l=n.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=ra(n.refID,d.id)){var y=n.type;void 0===g[y]&&(g[y]=[]);g[y].push(e);e.ba&&void 0!==n.start&&e.ba(h,n.start,n.end,g.cpu[0])}else{u('no component for <module refid="'+n.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(e=ra("debugger",d.id))g["debugger"]=[e],e.ba&&e.ba(h,k,l,g.cpu[0]);k=new Z(d,g);if(l=ra("panel",d.id))if(g.panel=[l],l.gb){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<B.length;d++)m=B[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.$a=l.$a,e.l=l.l,e.gb=l.gb)}F(k,c);wb(k)}});var xb=0;function yb(a,b,c,d,e,g){e("Loading "+a+"...");t(a,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):Ab(k,a,b,c,d,e,g)})}
|
||||
function Ab(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){D[c]&&b&&(D[c][b]=a);var k=b;k&&0>k.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';"object"==typeof resources&&(k=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
|
||||
"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(y){k=null,a=y.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?Bb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Ab(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){D[c]&&b&&(D[c][b]=a);var k=b;k&&0>k.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';"object"==typeof resources&&(k=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,
|
||||
"$1c1pjs$2"));k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(y){k=null,a=y.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?Bb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Bb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");t(e,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],h);Bb(a,b,c)}})}else c(a,null)}
|
||||
function Cb(a,b,c){function d(a){if(void 0===h){var b=g&&G(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=da(a))}function e(a){d("Error: "+a);k&&(--xb||z(!0));k=!1}var g,h,k=!0;xb++;D[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var m=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=l:n.appendChild(document.createTextNode(l));m.appendChild(n)}c||(c=
|
||||
|
|
|
|||
|
|
@ -116,8 +116,8 @@ Y.prototype.reset=function(a){var b=null,c;for(c in this.M)for(var d=0;d<this.M[
|
|||
Y.prototype.J=function(a,b,c){switch(b){case "reset":return this.A[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.M[b]?a.M[b][0]:null}function Za(a){var b=null,c;for(c in a.M)for(var d=0;d<a.M[c].length;d++){var f=a.M[c][d];if(f){if(!J(f)){J(f,function(a){return function(){Za(a)}}(a));return}"cpu"==c?b=f:f.$&&f.$(!0,a)}}a.N();a.F("C1Pjs v1.21.7\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.$(!0,a)}
|
||||
y(function(){for(var a=I(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=G(c),f,g={},k,h=0,l=0,m=0;m<d.modules.length;m++){var n=d.modules[m];if(!m){if("cpu"!=n.type)break;h=n.start;l=n.end;k=Array(l+1-h);for(f=h;f<k.length;f++)k[f]=0}if(f=F(n.refID,d.id)){var u=n.type;void 0===g[u]&&(g[u]=[]);g[u].push(f);f.X&&void 0!==n.start&&f.X(k,n.start,n.end,g.cpu[0])}else{t('no component for <module refid="'+n.refID+'">');return}}if(void 0===k){t('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||
break}if(f=F("debugger",d.id))g["debugger"]=[f],f.X&&f.X(k,h,l,g.cpu[0]);h=new Y(d,g);if(l=F("panel",d.id))if(g.panel=[l],l.ya){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;d<C.length;d++)m=C[d],f&&m.id.indexOf(f)||g.push(m);d=g;for(g=0;g<d.length;g++)f=d[g],f!=l&&(f.wa=l.wa,f.F=l.F,f.ya=l.ya)}H(h,c);Za(h)}});var Z=0;function $a(a,b,c,d,f,g){f("Loading "+a+"...");r(a,function(k,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),g(h,null)):ab(h,a,b,c,d,f,g)})}
|
||||
function ab(a,b,c,d,f,g,k){function h(a,g){if(g)k(g,null);else{if(c){E[c]&&b&&(E[c][b]=a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
|
||||
"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){h=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?f?bb(a,g,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||
function ab(a,b,c,d,f,g,k){function h(a,g){if(g)k(g,null);else{if(c){E[c]&&b&&(E[c][b]=a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,
|
||||
"$1c1pjs$2"));h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){h=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?f?bb(a,g,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||
function bb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");r(f,function(g,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+f);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],k);bb(a,b,c)}})}else c(a,null)}
|
||||
function db(a,b,c){function d(a){if(void 0===k){var b=g&&I(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=da(a))}function f(a){d("Error: "+a);h&&(--Z||A(!0));h=!1}var g,k,h=!0;Z++;E[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var m=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=l:n.appendChild(document.createTextNode(l));m.appendChild(n)}c||(c="/versions/c1pjs/1.21.7/components.xsl");
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
float: left;
|
||||
font-family: "Lucida Console", monospace;
|
||||
}
|
||||
.pcjs-control textarea {
|
||||
.pcjs-controls textarea {
|
||||
font-family: Monaco, monospace;
|
||||
font-size: x-small;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
<xsl:param name="generator" select="'client'"/>
|
||||
|
||||
<xsl:variable name="MACHINECLASS">pc</xsl:variable>
|
||||
<xsl:variable name="CSSCLASS">pcjs</xsl:variable>
|
||||
<xsl:variable name="APPCLASS">pcjs</xsl:variable>
|
||||
<xsl:variable name="APPVERSION">1.21.7</xsl:variable>
|
||||
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
|
||||
|
|
@ -57,7 +58,13 @@
|
|||
<xsl:variable name="machineStyle">
|
||||
<xsl:if test="@float">float:<xsl:value-of select="@float"/></xsl:if>
|
||||
</xsl:variable>
|
||||
<div id="{$machine}" class="machine {@class}js" style="{$machineStyle}">
|
||||
<xsl:variable name="machineClass">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@class = 'pc' or @class = 'c1p'"><xsl:value-of select="@class"/>js</xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<div id="{$machine}" class="machine {$machineClass}" style="{$machineStyle}">
|
||||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="machineState">
|
||||
|
|
@ -203,7 +210,7 @@
|
|||
<xsl:if test="$component != 'machine'">
|
||||
<xsl:apply-templates select="name" mode="component"/>
|
||||
</xsl:if>
|
||||
<div class="{$APPCLASS}-container" style="{$border}{$style}">
|
||||
<div class="{$CSSCLASS}-container" style="{$border}{$style}">
|
||||
<xsl:if test="$component = 'machine'">
|
||||
<xsl:apply-templates select="menu" mode="machine"/>
|
||||
</xsl:if>
|
||||
|
|
@ -214,7 +221,7 @@
|
|||
<div class="{$APPCLASS}-{$class}-object" data-value="{{id:'{$id}',name:'{$name}'{$comment}{$parms}}}"> </div>
|
||||
</xsl:if>
|
||||
<xsl:if test="control">
|
||||
<div class="{$APPCLASS}-controls">
|
||||
<div class="{$CSSCLASS}-controls">
|
||||
<xsl:apply-templates select="control" mode="component"/>
|
||||
</div>
|
||||
</xsl:if>
|
||||
|
|
@ -225,11 +232,11 @@
|
|||
</div>
|
||||
<xsl:if test="$component = 'machine'">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$url != ''"><div class="{$APPCLASS}-reference">[<a href="{$url}">XML</a>]</div></xsl:when>
|
||||
<xsl:when test="$url != ''"><div class="{$CSSCLASS}-reference">[<a href="{$url}">XML</a>]</div></xsl:when>
|
||||
<xsl:otherwise/>
|
||||
</xsl:choose>
|
||||
<xsl:if test="$MACHINECLASS = 'pc'"><div class="{$APPCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if>
|
||||
<div class="{$APPCLASS}-copyright">
|
||||
<xsl:if test="$MACHINECLASS = 'pc'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if>
|
||||
<div class="{$CSSCLASS}-copyright">
|
||||
<a href="http://{$SITEHOST}" target="_blank">PCjs</a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a>
|
||||
</div>
|
||||
<div style="clear:both"> </div>
|
||||
|
|
@ -248,7 +255,7 @@
|
|||
</xsl:template>
|
||||
|
||||
<xsl:template match="name" mode="component">
|
||||
<div class="{$APPCLASS}-name"><xsl:apply-templates/></div>
|
||||
<div class="{$CSSCLASS}-name"><xsl:apply-templates/></div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="menu" mode="component">
|
||||
|
|
@ -256,7 +263,7 @@
|
|||
</xsl:template>
|
||||
|
||||
<xsl:template match="title" mode="component">
|
||||
<div class="{$APPCLASS}-menu"><xsl:apply-templates/></div>
|
||||
<div class="{$CSSCLASS}-menu"><xsl:apply-templates/></div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="control" mode="component">
|
||||
|
|
@ -345,7 +352,7 @@
|
|||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="subClass">
|
||||
<xsl:if test="@label"><xsl:text> </xsl:text><xsl:value-of select="$APPCLASS"/><xsl:text>-label</xsl:text></xsl:if>
|
||||
<xsl:if test="@label"><xsl:text> </xsl:text><xsl:value-of select="$CSSCLASS"/><xsl:text>-label</xsl:text></xsl:if>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="labelWidth">
|
||||
<xsl:choose>
|
||||
|
|
@ -363,12 +370,12 @@
|
|||
</xsl:variable>
|
||||
<xsl:if test="@label">
|
||||
<xsl:if test="not(@labelpos) or @labelpos = 'left'">
|
||||
<div class="{$APPCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
|
||||
<div class="{$CSSCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@type = 'canvas'">
|
||||
<canvas class="{$APPCLASS}-binding {$APPCLASS}-canvas" width="{@width}" height="{@height}" style="-webkit-user-select:none;{$border}{$fontsize}{$style}" data-value="{{{$type},{$binding}}}"><xsl:apply-templates/></canvas>
|
||||
<canvas class="{$APPCLASS}-binding {$CSSCLASS}-canvas" width="{@width}" height="{@height}" style="-webkit-user-select:none;{$border}{$fontsize}{$style}" data-value="{{{$type},{$binding}}}"><xsl:apply-templates/></canvas>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'button'">
|
||||
<button class="{$APPCLASS}-binding" style="-webkit-user-select:none;{$border}{$width}{$height}{$fontsize}{$style}" data-value="{{{$type},{$binding},{$value}}}"><xsl:apply-templates/></button>
|
||||
|
|
@ -392,14 +399,14 @@
|
|||
</xsl:when>
|
||||
<xsl:when test="@type = 'file'">
|
||||
<form class="{$APPCLASS}-binding" data-value="{{{$type},{$binding}}}">
|
||||
<fieldset class="{$APPCLASS}-fieldset">
|
||||
<fieldset class="{$CSSCLASS}-fieldset">
|
||||
<input type="file"/>
|
||||
<input type="submit" value="Mount" disabled="true"/>
|
||||
</fieldset>
|
||||
</form>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'led'">
|
||||
<div class="{$APPCLASS}-binding {$APPCLASS}-{@type}" data-value="{{{$type},{$binding}}}"><xsl:value-of select="."/></div>
|
||||
<div class="{$APPCLASS}-binding {$CSSCLASS}-{@type}" data-value="{{{$type},{$binding}}}"><xsl:value-of select="."/></div>
|
||||
</xsl:when>
|
||||
<xsl:when test="@type = 'separator'">
|
||||
<hr/>
|
||||
|
|
@ -411,12 +418,12 @@
|
|||
<div style="clear:both"> </div>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<div class="{$APPCLASS}-binding{$subClass} {$APPCLASS}-{@type}" style="-webkit-user-select:none;{$border}{$width}{$height}{$fontsize}{$style}" data-value="{{{$type},{$binding}}}"><xsl:apply-templates/></div>
|
||||
<div class="{$APPCLASS}-binding{$subClass} {$CSSCLASS}-{@type}" style="-webkit-user-select:none;{$border}{$width}{$height}{$fontsize}{$style}" data-value="{{{$type},{$binding}}}"><xsl:apply-templates/></div>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:if test="@label">
|
||||
<xsl:if test="@labelpos = 'right'">
|
||||
<div class="{$APPCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
|
||||
<div class="{$CSSCLASS}-label" style="{$labelWidth}{$labelStyle}"><xsl:value-of select="@label"/></div>
|
||||
</xsl:if>
|
||||
<div style="clear:both"> </div>
|
||||
</xsl:if>
|
||||
|
|
|
|||
|
|
@ -540,7 +540,7 @@ function ko(a,b,c,d,e){if(b.Ac<b.nh){e&&!A(a)||x(a,c,d,e,"CRTC."+b.kg[b.Ac]);b.m
|
|||
var gn={948:Z.prototype.Gl,949:Z.prototype.Fl,952:Z.prototype.Hl,954:Z.prototype.Il},hn={948:Z.prototype.an,949:Z.prototype.$m,952:Z.prototype.bn},jn={980:Z.prototype.kl,981:Z.prototype.jl,984:Z.prototype.ll,985:Z.prototype.il,986:Z.prototype.ml},kn={980:Z.prototype.Em,981:Z.prototype.Dm,984:Z.prototype.Fm,985:Z.prototype.Cm},ln={960:Z.prototype.el,961:Z.prototype.Ck,962:Z.prototype.Sl,964:Z.prototype.Ql,965:Z.prototype.Pl,974:Z.prototype.zl,975:Z.prototype.yl},mn={954:Z.prototype.ek,960:Z.prototype.dk,
|
||||
961:Z.prototype.dk,962:Z.prototype.cn,964:Z.prototype.jn,965:Z.prototype.hn,970:Z.prototype.Wm,972:Z.prototype.Vm,974:Z.prototype.Um,975:Z.prototype.Tm,986:Z.prototype.ek},nn={963:Z.prototype.Tl,966:Z.prototype.rl,967:Z.prototype.sl,969:Z.prototype.ql,970:Z.prototype.Ul,972:Z.prototype.Vl},on={963:Z.prototype.mn,966:Z.prototype.Km,967:Z.prototype.Lm,968:Z.prototype.Mm,969:Z.prototype.Jm};
|
||||
Qa(function(){for(var a=nb(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=jb(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","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=ya().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
|
||||
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+Ya.aspect;f&&.3<=f&&3.33>=f&&(Pa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ga("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);mb(d,c)}});
|
||||
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ya.aspect);f&&.3<=f&&3.33>=f&&(Pa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ga("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);mb(d,c)}});
|
||||
function no(a){this.W=a.adapter;switch(this.W){case 1:this.V=956;this.C=7;break;case 2:this.V=888;this.C=7;break;case 3:this.V=632;this.C=5;break;default:w("Unrecognized parallel adapter #"+this.W);return}this.A=this.B=null;Ua.call(this,"ParallelPort",a,no,4194304);a=a.binding;"console"==a?this.B="":kb(this,a,oo)}db(no);var oo="buffer";m=no.prototype;m.Qb=function(a,b,c){switch(b){case oo:return this.qa[b]=this.A=c,!0}return!1};
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet");hc(b,this,po,this.V);lc(b,this,qo,this.V);rb(this)};m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){ro(this)};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Yb;c[b]=this.Bf;N(a,0,c);return a.data()};m.restore=function(a){return ro(this,a[0])};
|
||||
function ro(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.L=b[c++];a.Yb=b[c++];a.Bf=b[c];return!0}m.tl=function(a,b){var c=this.L;x(this,a,null,b,"DATA",c);return c};m.Rl=function(a,b){var c=this.Yb;x(this,a,null,b,"STAT",c);return c};m.pl=function(a,b){var c=this.Bf;x(this,a,null,b,"CTRL",c);return c};
|
||||
|
|
@ -804,8 +804,8 @@ function dd(a,b){for(var c=0;c<a.L.length;c++)qn(a.L[c],b);if(a.C&&(c=a.C,c.Ja))
|
|||
h.N.save(),h.N.translate(f,k),h.N.rotate(-Math.PI/2),f=k=0),l<h.X&&(h.X=l,h.ga=h.X+"px Monaco, Lucida Console, Courier New"),g=k,h.C=f,h.U=g,h=c,e=sc[e.type]+" ("+(e.Ud*c.ea.Nb/1024|0)+"Kb)",h.N.font=h.ga,h.C-=h.N.measureText(e).width>>1,h.U+=(h.X>>1)-2,Jb(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Jb(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}}
|
||||
Qa(function(){for(var a=nb(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=jb(c),c=nb(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=jb(f),g=new Tr(g,d,!0);mb(g,f);g.ga&&Zr(g,g.$f)}});La.show.push(function(){for(var a=nb(document,"pcjs","computer"),b=0;b<a.length;b++){var c=jb(a[b]);(c=ib("Computer",c.id))&&c.ka&&!c.la.cc&&c.$f(-1)}});
|
||||
La.exit.push(function(){for(var a=nb(document,"pcjs","computer"),b=0;b<a.length;b++){var c=jb(a[b]);(c=ib("Computer",c.id))&&c.la.cc&&Nr(c,!(!c.A||c.X),!0)}});var es=0;function fs(a,b,c,d,e,f){e("Loading "+a+"...");va(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):rs(h,a,b,c,d,e,f)})}
|
||||
function rs(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){fb(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
|
||||
"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){h=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?ss(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function rs(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){fb(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcjs$2"));
|
||||
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){h=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?ss(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function ss(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");va(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);ss(a,b,c)}})}else c(a,null)}
|
||||
function ts(a,b,c,d){function e(a){if(void 0===h){var b=g&&nb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function f(a){e("Error: "+a);k&&(--es||Sa(!0));k=!1}var g,h,k=!0;es++;eb[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=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));n.appendChild(q)}c||
|
||||
|
|
|
|||
|
|
@ -501,7 +501,7 @@ function Fl(a,b,c){if(b.sc<b.pg){b.ab[b.sc]=c;if(12==b.sc||13==b.sc)if(Dl(a,b)&1
|
|||
var bl={948:Y.prototype.xk,949:Y.prototype.wk,952:Y.prototype.yk,954:Y.prototype.zk},cl={948:Y.prototype.Ll,949:Y.prototype.Kl,952:Y.prototype.Ml},dl={980:Y.prototype.ak,981:Y.prototype.$j,984:Y.prototype.bk,985:Y.prototype.Zj,986:Y.prototype.ck},el={980:Y.prototype.ol,981:Y.prototype.nl,984:Y.prototype.pl,985:Y.prototype.ml},fl={960:Y.prototype.Vj,961:Y.prototype.wj,962:Y.prototype.Jk,964:Y.prototype.Hk,965:Y.prototype.Gk,974:Y.prototype.qk,975:Y.prototype.pk},gl={954:Y.prototype.dj,960:Y.prototype.cj,
|
||||
961:Y.prototype.cj,962:Y.prototype.Nl,964:Y.prototype.Tl,965:Y.prototype.Sl,970:Y.prototype.Gl,972:Y.prototype.Fl,974:Y.prototype.El,975:Y.prototype.Dl,986:Y.prototype.dj},hl={963:Y.prototype.Kk,966:Y.prototype.hk,967:Y.prototype.ik,969:Y.prototype.gk,970:Y.prototype.Lk,972:Y.prototype.Mk},il={963:Y.prototype.Vl,966:Y.prototype.ul,967:Y.prototype.vl,968:Y.prototype.wl,969:Y.prototype.tl};
|
||||
Ea(function(){for(var a=Za(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=Wa(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","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
|
||||
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+La.aspect;f&&.3<=f&&3.33>=f&&(Da("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ya("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);Ya(d,c)}});
|
||||
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||La.aspect);f&&.3<=f&&3.33>=f&&(Da("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ya("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);Ya(d,c)}});
|
||||
function Hl(a){this.I=a.adapter;switch(this.I){case 1:this.G=956;this.D=7;break;case 2:this.G=888;this.D=7;break;case 3:this.G=632;this.D=5;break;default:n("Unrecognized parallel adapter #"+this.I);return}this.B=this.C=null;Ia.call(this,"ParallelPort",a,Hl);a=a.binding;"console"==a?this.C="":Xa(this,a,Il)}Qa(Hl);var Il="buffer";l=Hl.prototype;l.zb=function(a,b,c){switch(b){case Il:return this.ka[b]=this.B=c,!0}return!1};
|
||||
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.P=kb(a,"ChipSet");Nb(b,this,Jl,this.G);Pb(b,this,Kl,this.G);ab(this)};l.Vb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0};l.reset=function(){Ll(this)};l.save=function(){var a=new ce(this),b=0,c=[];c[b++]=this.H;c[b++]=this.Db;c[b]=this.Ie;C(a,0,c);return a.data()};l.restore=function(a){return Ll(this,a[0])};
|
||||
function Ll(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.H=b[c++];a.Db=b[c++];a.Ie=b[c];return!0}l.jk=function(){return this.H};l.Ik=function(){return this.Db};l.fk=function(){return this.Ie};
|
||||
|
|
@ -622,8 +622,8 @@ function yc(a,b){for(var c=0;c<a.I.length;c++)kl(a.I[c],b);if(a.D&&(c=a.D,c.ua))
|
|||
h.G.translate(f,k),h.G.rotate(-Math.PI/2),f=k=0),m<h.L&&(h.L=m,h.S=h.L+"px Monaco, Lucida Console, Courier New"),g=k,h.D=f,h.K=g,h=c,e=Vb[e.type]+" ("+(e.hd*c.ha.vb/1024|0)+"Kb)",h.G.font=h.S,h.D-=h.G.measureText(e).width>>1,h.K+=(h.L>>1)-2,pb(h,e),h.da&&(h.G.restore(),h.da=!1)}}else pb(c,"This space intentionally left blank");c.context.drawImage(c.P,0,0,c.P.width,c.P.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}}
|
||||
Ea(function(){for(var a=Za(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Wa(c),c=Za(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=Wa(f),g=new pn(g,d,!0);Ya(g,f);g.ba&&vn(g,g.df)}});Aa.show.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.Y&&!c.ea.Rb&&c.df(-1)}});
|
||||
Aa.exit.push(function(){for(var a=Za(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Wa(a[b]);(c=Va("Computer",c.id))&&c.ea.Rb&&zn(c,!(!c.B||c.P),!0)}});var Cn=0;function Dn(a,b,c,d,e,f){e("Loading "+a+"...");pa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):En(h,a,b,c,d,e,f)})}
|
||||
function En(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){Sa(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,
|
||||
"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){h=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?Fn(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function En(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){Sa(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcjs$2"));
|
||||
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){h=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?Fn(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Fn(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Fn(a,b,c)}})}else c(a,null)}
|
||||
function Gn(a,b,c,d){function e(a){if(void 0===h){var b=g&&Za(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function f(a){e("Error: "+a);k&&(--Cn||Ga(!0));k=!1}var g,h,k=!0;Cn++;Ra[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=m:x.appendChild(document.createTextNode(m));p.appendChild(x)}c||
|
||||
|
|
|
|||
Loading…
Reference in a new issue