Multiple MACRO-10 source files can now be requested and assembled together; also, restored DAKAD.MAC to its original version and put my modified version in TEST.MAC
This commit is contained in:
parent
3f8705ad98
commit
4959108512
7 changed files with 9687 additions and 197 deletions
7398
apps/pdp10/tapes/diags/klad/SMFILE.MAC
Normal file
7398
apps/pdp10/tapes/diags/klad/SMFILE.MAC
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -35,17 +35,16 @@ DEFINE SFLAG (A)<
|
|||
JRST 2,.+1(1) ;SET A FLAG>
|
||||
SUBTTL DIAGNOSTIC SECTION
|
||||
|
||||
START:
|
||||
; SETZM USER# ;CLEAR USER CONTROL WORD
|
||||
; JSP 0,.+1 ;GET FLAGS
|
||||
; TLNE USERF ;IN USER MODE?
|
||||
; SETOM USER ;YES, SET USER CONTROL WORD
|
||||
; SKIPN MONFLG ;SPECIAL USER MODE?
|
||||
; SETZM USER ;YES, CLEAR USER CONTROL WORD
|
||||
; SKIPN USER
|
||||
; JRST C00
|
||||
; SKIPL MONCTL
|
||||
; TTCALL 3,PGMNAM ;MENTION OUR NAME
|
||||
START: SETZM USER# ;CLEAR USER CONTROL WORD
|
||||
JSP 0,.+1 ;GET FLAGS
|
||||
TLNE USERF ;IN USER MODE?
|
||||
SETOM USER ;YES, SET USER CONTROL WORD
|
||||
SKIPN MONFLG ;SPECIAL USER MODE?
|
||||
SETZM USER ;YES, CLEAR USER CONTROL WORD
|
||||
SKIPN USER
|
||||
JRST C00
|
||||
SKIPL MONCTL
|
||||
TTCALL 3,PGMNAM ;MENTION OUR NAME
|
||||
JRST STARTA
|
||||
|
||||
PGMNAM: ASCIZ/
|
||||
|
|
@ -2052,4 +2051,4 @@ C22700: SETZM 2 ;INITIALIZE AC
|
|||
|
||||
;**********
|
||||
|
||||
; JRST BEGEND
|
||||
JRST BEGEND
|
||||
|
|
|
|||
2055
apps/pdp10/tapes/diags/klad/dakad/TEST.MAC
Normal file
2055
apps/pdp10/tapes/diags/klad/dakad/TEST.MAC
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -8,5 +8,5 @@
|
|||
<device id="default" type="default"/>
|
||||
<serial id="serial" adapter="0" binding="print" upperCase="true"/>
|
||||
<panel ref="/devices/pdp10/panel/test/debugger/terminal.xml"/>
|
||||
<debugger id="debugger" base="8" messages="" commands="a 100 /apps/pdp10/tapes/diags/klad/dakad/DAKAD.MAC"/>
|
||||
<debugger id="debugger" base="8" messages='' commands='a 100 "/apps/pdp10/tapes/diags/klad/dakad/TEST.MAC"'/>
|
||||
</machine>
|
||||
|
|
|
|||
|
|
@ -187,8 +187,8 @@ class DebuggerPDP10 extends Debugger {
|
|||
this.macro10 = null;
|
||||
|
||||
/*
|
||||
* Make it easier to access DebuggerPDP10 commands from an external REPL (eg, the WebStorm
|
||||
* "live" console window); eg:
|
||||
* Make it easier to access DebuggerPDP10 commands from an external REPL;
|
||||
* eg, the WebStorm "live" console window:
|
||||
*
|
||||
* pdp10('r')
|
||||
* pdp10('dw 0:0')
|
||||
|
|
@ -2566,18 +2566,20 @@ class DebuggerPDP10 extends Debugger {
|
|||
return;
|
||||
}
|
||||
|
||||
if (sOpcode[0] == '/' || sOpcode.indexOf(':') >= 0) {
|
||||
var match = sOpcode.match(/^(['"]?)((\/|http:).*)\1$/);
|
||||
if (match) {
|
||||
var dbg = this;
|
||||
if (this.macro10) {
|
||||
dbg.println("assembly already in progress");
|
||||
}
|
||||
else {
|
||||
var addrLoad = dbgAddr.addr;
|
||||
this.macro10 = new Macro10(sOpcode, addrLoad, dbg, function(macro10, sURL, nErrorCode) {
|
||||
var sOptions = ""; // "p";
|
||||
this.macro10 = new Macro10(match[2], addrLoad, sOptions, dbg, function doneMacro10(nErrorCode, sURL) {
|
||||
if (!nErrorCode) {
|
||||
dbg.loadBin(macro10.getBin(), addrLoad);
|
||||
dbg.loadBin(dbg.macro10.getBin(), addrLoad);
|
||||
} else {
|
||||
dbg.println("error assembling " + sURL + ": (" + nErrorCode + ")");
|
||||
dbg.println("error (" + nErrorCode + ") processing " + sURL);
|
||||
}
|
||||
dbg.macro10 = null;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -76,35 +76,43 @@ var Fixup;
|
|||
* @class Macro10
|
||||
* @property {string} sURL
|
||||
* @property {number} nAddr
|
||||
* @property {string} sOptions
|
||||
* @property {DebuggerPDP10} dbg
|
||||
* @property {function(Macro10,string,number)} done
|
||||
* @property {function(...)} done
|
||||
* @property {string} sText
|
||||
* @property {number} iURL
|
||||
* @property {Array.<string>} asURLs
|
||||
*/
|
||||
class Macro10 {
|
||||
/**
|
||||
* Macro10(sURL, nAddr, dbg, done)
|
||||
* Macro10(sURL, nAddr, sOptions, dbg, done)
|
||||
*
|
||||
* The done() callback is called after the resource has been loaded and parsed, with an error code
|
||||
* indicating overall success or failure. The caller must use other methods to obtain further results.
|
||||
* Requests the resource(s) specified by sURL; multiple resources can be requested by separating
|
||||
* them with semicolons.
|
||||
*
|
||||
* The callback is passed three parameters:
|
||||
* The done() callback is called after the resource(s) have been loaded and parsed. The caller
|
||||
* must use other methods to obtain further results (eg, getBin()).
|
||||
*
|
||||
* done(macro10, sURL, nErrorCode)
|
||||
* The callback includes a non-zero error code if there was an error (and the URL):
|
||||
*
|
||||
* If nErrorCode is zero, the assembly process completed successfully.
|
||||
* done(nErrorCode, sURL)
|
||||
*
|
||||
* For access to basic services (eg, println()), we rely on the caller. This is NOT an extension of
|
||||
* Component, so those services are NOT part of this class.
|
||||
* We rely on the calling component (dbg) to provide a variety of helper services (eg, println(),
|
||||
* parseExpression(), etc). This is NOT a subclass of Component, so Component services are not part
|
||||
* of this class.
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sURL (the URL of the resource to be assembled)
|
||||
* @param {string} sURL (the URL(s) of the resource to be assembled)
|
||||
* @param {number|null} nAddr (the absolute address to assemble the code at, if any)
|
||||
* @param {DebuggerPDP10} dbg (used to provide services like println() to the Macro10 class)
|
||||
* @param {function(Macro10,string,number)} done
|
||||
* @param {string} sOptions (zero or more letter codes to control the assembly process)
|
||||
* @param {DebuggerPDP10} dbg (used to provide helper services to the Macro10 class)
|
||||
* @param {function(...)} done
|
||||
*/
|
||||
constructor(sURL, nAddr, dbg, done)
|
||||
constructor(sURL, nAddr, sOptions, dbg, done)
|
||||
{
|
||||
this.sURL = sURL;
|
||||
this.nAddr = nAddr || 0;
|
||||
this.sOptions = sOptions;
|
||||
this.dbg = dbg;
|
||||
this.done = done;
|
||||
|
||||
|
|
@ -174,8 +182,8 @@ class Macro10 {
|
|||
this.chMacroOpen = this.chMacroClose = '';
|
||||
|
||||
/**
|
||||
* If an ASCII/ASCIZ/SIXBIT pseudo-op is active, chASCII is set to the separator and sASCII collects
|
||||
* the intervening character(s).
|
||||
* If an ASCII/ASCIZ/SIXBIT pseudo-op is active, chASCII is set to the separator
|
||||
* and sASCII collects the intervening character(s).
|
||||
*
|
||||
* @type {null|string}
|
||||
*/
|
||||
|
|
@ -186,12 +194,49 @@ class Macro10 {
|
|||
*/
|
||||
this.sASCII = "";
|
||||
|
||||
this.sText = "";
|
||||
this.iURL = 0;
|
||||
this.asURLs = sURL.split(';');
|
||||
this.loadNextResource();
|
||||
}
|
||||
|
||||
/**
|
||||
* loadNextResource()
|
||||
*
|
||||
* @this {Macro10}
|
||||
*/
|
||||
loadNextResource()
|
||||
{
|
||||
if (this.iURL == this.asURLs.length) {
|
||||
this.done(this.parseFile());
|
||||
return;
|
||||
}
|
||||
var macro10 = this;
|
||||
Web.getResource(sURL, null, true, function processMacro10(sURL, sResource, nErrorCode) {
|
||||
if (!nErrorCode) {
|
||||
nErrorCode = macro10.parseFile(sURL, sResource);
|
||||
Web.getResource(this.asURLs[this.iURL++], null, true, function processMacro10(sURL, sResource, nErrorCode) {
|
||||
if (nErrorCode) {
|
||||
macro10.done(nErrorCode, sURL);
|
||||
return;
|
||||
}
|
||||
macro10.done(macro10, sURL, nErrorCode);
|
||||
var sText = sResource;
|
||||
if (Str.endsWith(sURL, ".html")) {
|
||||
/*
|
||||
* We want to parse ONLY the text between <PRE>...</PRE> tags, and eliminate any HTML entities.
|
||||
*/
|
||||
sText = "";
|
||||
var match, re = /<pre>([\s\S]*?)<\/pre>/gi;
|
||||
while (match = re.exec(sResource)) {
|
||||
var s = match[1];
|
||||
if (s.indexOf('&') >= 0) s = s.replace(/</gi, '<').replace(/>/gi, '>').replace(/&/gi, '&');
|
||||
sText += s;
|
||||
}
|
||||
match = sText.match(/&[a-z]+;/i);
|
||||
if (match) macro10.warning("unrecognized HTML entity: " + match[0]);
|
||||
}
|
||||
if (macro10.sText) macro10.sText += '\n';
|
||||
macro10.sText += sText;
|
||||
setTimeout(function() {
|
||||
macro10.loadNextResource();
|
||||
}, 0);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -207,38 +252,29 @@ class Macro10 {
|
|||
}
|
||||
|
||||
/**
|
||||
* parseFile(sPath, sContents)
|
||||
* parseFile()
|
||||
*
|
||||
* Begin the assembly process.
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sPath
|
||||
* @param {string} sContents
|
||||
* @return {number}
|
||||
*/
|
||||
parseFile(sPath, sContents)
|
||||
parseFile()
|
||||
{
|
||||
var macro10 = this;
|
||||
|
||||
/*
|
||||
* If the "preprocess" option is set, then just return the plain text we retrieved.
|
||||
*/
|
||||
if (this.sOptions.indexOf('p') >= 0) {
|
||||
this.dbg.println(this.sText);
|
||||
return 0;
|
||||
}
|
||||
|
||||
var a = this.dbg.resetVariables();
|
||||
try {
|
||||
var sText = sContents;
|
||||
if (Str.endsWith(sPath, ".html")) {
|
||||
/*
|
||||
* We want to parse ONLY the text between <PRE>...</PRE> tags, and eliminate any HTML entities.
|
||||
*/
|
||||
sText = "";
|
||||
var match, re = /<pre>([\s\S]*?)<\/pre>/gi;
|
||||
while (match = re.exec(sContents)) {
|
||||
var s = match[1];
|
||||
if (s.indexOf('&') >= 0) s = s.replace(/</gi, '<').replace(/>/gi, '>').replace(/&/gi, '&');
|
||||
sText += s;
|
||||
}
|
||||
match = sText.match(/&[a-z]+;/i);
|
||||
if (match) this.warning("unrecognized HTML entity: " + match[0]);
|
||||
}
|
||||
|
||||
var i;
|
||||
var asLines = sText.split(/\r?\n/);
|
||||
var asLines = this.sText.split(/\r?\n/);
|
||||
for (i = 0; i < asLines.length; i++) {
|
||||
this.nLine++;
|
||||
if (!this.parseLine(asLines[i] + '\r\n')) break;
|
||||
|
|
|
|||
|
|
@ -35,28 +35,28 @@ var ra={lc:0,Db:1,nc:2,oc:3,pc:4,qc:5,rc:6,sc:7,qb:8,tc:9,Eb:10,uc:11,vc:12,Fb:1
|
|||
ad:88,bd:89,Hb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,cd:97,dd:98,ed:99,d:100,e:101,fd:102,kd:103,ld:104,md:105,nd:106,k:107,od:108,pd:109,n:110,qd:111,p:112,q:113,r:114,rd:115,t:116,td:117,ud:118,vd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Gb:127};
|
||||
function sa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
|
||||
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}function ta(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}
|
||||
function n(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return ta(a,8,b,c?"0o":"")}function ua(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return ta(a,10,b)}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ta(a,16,b,c?"0x":"")}function va(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function wa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function za(a,b){return-1!==a.indexOf(b,a.length-b.length)}
|
||||
function m(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return ta(a,8,b,c?"0o":"")}function ua(a,b){b?11<b&&(b=11):b=a&-65536?10:5;return ta(a,10,b)}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ta(a,16,b,c?"0x":"")}function va(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function wa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function za(a,b){return-1!==a.indexOf(b,a.length-b.length)}
|
||||
function Aa(a){return a.replace(/[&<>"']/g,function(a){return Ba[a]})}function Ca(a,b){return(a+" ").slice(0,b)}function Da(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ba={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ea(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
|
||||
function Fa(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function Ga(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
|
||||
f,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
function Ma(a,b){var c,d={Y:null,U:null,ta:null,sa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ta=g.load;d.sa=g.exec;if(e=g.bytes)d.Y=e;else if(e=g.words)for(d.Y=Array(2*e.length),f=c=0;c<e.length;c++)d.Y[f++]=e[c]&255,d.Y[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c<e.length;c++)d.Y[f++]=
|
||||
e[c]&255,d.Y[f++]=e[c]>>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Ia=e:d.Y=g;d.Y&&(d.Y.length?1==d.Y.length&&(r(d.Y[0]),d=null):(r("Empty resource: "+a),d=null));d.U=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Y=e)}return d}
|
||||
f,e))});if(b&&"object"==typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
function Ma(a,b){var c,d={Y:null,U:null,ua:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ua=g.load;d.ta=g.exec;if(e=g.bytes)d.Y=e;else if(e=g.words)for(d.Y=Array(2*e.length),f=c=0;c<e.length;c++)d.Y[f++]=e[c]&255,d.Y[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c<e.length;c++)d.Y[f++]=
|
||||
e[c]&255,d.Y[f++]=e[c]>>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Ja=e:d.Y=g;d.Y&&(d.Y.length?1==d.Y.length&&(r(d.Y[0]),d=null):(r("Empty resource: "+a),d=null));d.U=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Y=e)}return d}
|
||||
function Na(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Oa(){if(null==Pa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Pa=a}return Pa}function Qa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function Ra(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Sa(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)}return!1}
|
||||
function Ta(a){if(!Ua){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ua=c}return Ua[a]}function Va(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Wa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Xa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ya(a){Za.init.push(a)}
|
||||
function eb(a){if(fb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function gb(a){!fb&&a?(fb=!0,hb&&ib("init"),jb&&ib("show")):fb=a}function ib(a){Za[a]&&eb(Za[a])}var Ua=null,Za={init:[],show:[],exit:[]},hb=!1,jb=!1,fb=!0,Pa=null;Xa("onload",function(){hb=!0;eb(Za.init)});Xa("onpageshow",function(){jb=!0;eb(Za.show)});Xa(Sa("Opera")||Sa("iOS")?"onunload":"onbeforeunload",function(){eb(Za.exit)});
|
||||
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ob=b.comment;this.Kb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Ta=this.id:(this.Ua=this.id.substr(0,a),this.Ta=this.id.substr(a+1));this.A={ready:!1,Na:!1,hb:!1,V:!1,error:!1};this.Xa=null;this.A.error=!1;this.X=c||0;this.D=this.v=this.G=this.H=this.ua=null;kb.push(this)}function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}
|
||||
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ob=b.comment;this.Kb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Ta=this.id:(this.Ua=this.id.substr(0,a),this.Ta=this.id.substr(a+1));this.A={ready:!1,Na:!1,hb:!1,V:!1,error:!1};this.Xa=null;this.A.error=!1;this.X=c||0;this.D=this.v=this.G=this.H=this.va=null;kb.push(this)}function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}
|
||||
function r(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<kb.length;b++){var d=kb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function qb(a){if(void 0!==a){var b;for(b=0;b<kb.length;b++)if(kb[b].id===a)return kb[b]}return null}
|
||||
function rb(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<kb.length;d++)if(c)c==kb[d]&&(c=null);else if(!(a!=kb[d].type||b&&kb[d].id.indexOf(b)))return kb[d]}return null}function v(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
|
||||
function sb(a,b){var c=w;b=x(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=v(g))&&h.binding&&a.la(h.type,h.binding,g,h.value),m=k.length}}}}
|
||||
function sb(a,b){var c=w;b=x(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),n=0;n<k.length;n++)switch(h=k[n],h){case c+"-binding":(h=v(g))&&h.binding&&a.ma(h.type,h.binding,g,h.value),n=k.length}}}}
|
||||
function x(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}
|
||||
function tb(a){for(var b=!0,c=ub[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){tb(a)}}());var g=wb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=rb(d[1],a);if(h)if(g=xb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete ub[a];return b}l=u.prototype;
|
||||
l.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
l.la=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.ua=this.J[b]=c,c.value="",this.j=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.da=function(a){this.j(a,this.Ta)}),!0;default:return!1}};l.log=function(){};l.j=function(){};
|
||||
l.ma=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.va=this.J[b]=c,c.value="",this.j=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.da=function(a){this.j(a,this.Ta)}),!0;default:return!1}};l.log=function(){};l.j=function(){};
|
||||
l.status=function(a){this.j(this.Ta+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function yb(a,b){a.A.error=!0;a.da(b)}function Ib(a){return a.A.error?(a.j(a.toString()+" error"),!0):!1}function Jb(a,b){b&&(a.A.ready?b():a.Xa=b);return a.A.ready}function Kb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Xa;a.Xa=null;b&&b()}}function Lb(a,b){a.A.Na&&(b?a.A.hb=!0:void 0===b&&a.j(a.toString()+" busy"));return a.A.Na}
|
||||
function Mb(a,b){if(a.A.hb)return a.A.Na=!1,a.A.hb=!1;if(a.A.error)return a.j(a.toString()+" error"),!1;a.A.Na=b;return a.A.Na}l.va=function(){return this.A.V=!0};l.ka=function(a,b){b&&(this.A.V=!1);return!0};function Nb(a,b){if(a.D){a===a.D?b|=0:b=b||a.X;var c=a.D.X&b;return!!b&&c===b||!!(c&a.D.yb)}return!1}function Ob(a,b,c,d){a.D&&(!0===c||Nb(a,c|0))&&a.D.message(b,d)}
|
||||
function Mb(a,b){if(a.A.hb)return a.A.Na=!1,a.A.hb=!1;if(a.A.error)return a.j(a.toString()+" error"),!1;a.A.Na=b;return a.A.Na}l.wa=function(){return this.A.V=!0};l.la=function(a,b){b&&(this.A.V=!1);return!0};function Nb(a,b){if(a.D){a===a.D?b|=0:b=b||a.X;var c=a.D.X&b;return!!b&&c===b||!!(c&a.D.yb)}return!1}function Ob(a,b,c,d){a.D&&(!0===c||Nb(a,c|0))&&a.D.message(b,d)}
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var mb=window?window.PCjs.Machines:{},kb=window?window.PCjs.Components:[],ub=window?window.PCjs.Commands:{},vb=["hold","sleep","wait"],wb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},xb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
||||
|
|
@ -65,8 +65,8 @@ var w="pdp10",Pb="PDPjs",Qb=Math.pow(2,18)-1,Rb=Math.pow(2,18),Sb=Math.pow(2,17)
|
|||
speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function $b(a,b){u.call(this,"Panel",a,512);this.K=this.L=0;this.T=b;this.i=this.I=this.u=this.w=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.S=ac;this.C={};this.b={START:[1,1,!0,!1,this.Wb],STEP:[1,1,!1,!1,this.Xb],ENABLE:[1,1,!1,!1,this.Rb],CONT:[1,1,!0,!1,this.Pb],DEP:[0,0,!0,!1,this.Qb],EXAM:[1,1,!0,!1,this.Sb],LOAD:[1,1,!0,!1,this.Ub],TEST:[0,0,!0,!1,this.Tb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Vb,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Nb,toggle:this.fc,reset:this.bc,
|
||||
set:this.ec};Kb(this)}pa($b,u);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.w=0)};
|
||||
l.la=function(a,b,c,d){if(this.H&&this.H.la(a,b,c,d)||this.v&&this.v.la(a,b,c,d)||this.D&&this.D.la(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):u.prototype.la.call(this,a,b,c,d)}};l.Ea=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;ec(this);fc(this)};l.va=function(a,b){if(!b)if(this.T&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ka=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.u]);return a.data()};
|
||||
l.ma=function(a,b,c,d){if(this.H&&this.H.ma(a,b,c,d)||this.v&&this.v.ma(a,b,c,d)||this.D&&this.D.ma(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):u.prototype.ma.call(this,a,b,c,d)}};l.Fa=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;ec(this);fc(this)};l.wa=function(a,b){if(!b)if(this.T&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.la=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])hc(this,this.i=a[0]),bc(this,this.w=a[1]),ic(this,a[2]);return!0};l.bc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}fc(this);return!0};function jc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.C)jc(a,c,null!=b?b:a.C[c])}function kc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fc(a){for(var b in a.b)kc(a,b,a.b[b][1])}
|
||||
l.Nb=function(a,b,c){if(cc(this,b)){if(c){var d=this;setTimeout(function(){dc(d,b);a&&a()},+c);return!1}dc(this,b)}return!0};l.ec=function(a,b){if("SR"==a)return ic(this,sa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.fc=function(a){return cc(this,a)?(dc(this,a),!0):!1};function cc(a,b){var c=a.b[b];return c?(kc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lc&&(a.P=b==mc,a.R=b==nc),!0):!1}
|
||||
function dc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(kc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Wb=function(a){a||this.v.A.N||(H(this.v,this.i),this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Xb=function(){};l.Rb=function(a){a||this.v.W()};
|
||||
|
|
@ -74,39 +74,39 @@ l.Pb=function(a){if(!a&&!this.v.A.N)if(this.b[oc]&&this.b[oc][1])pc(this.v);else
|
|||
l.Sb=function(a){if(!a&&!this.v.A.N){var b;this.R&&uc(this);this.S==ac?b=wc(this.G,this.i):b=this.v.f(this.i);bc(this,this.w=b)}};l.Ub=function(a){a||this.v.A.N||hc(this,this.u)};l.Tb=function(a){a?(this.F=!0,ec(this,!0)):(this.F=!1,ec(this),ic(this,0))};l.Vb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function uc(a){var b=1,c=a.G.u;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.i&~c|a.i+b&c)}
|
||||
function hc(a,b){a.i=b&a.G.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||jc(d,e,f)}}}function bc(a,b){a.I=b%E;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||jc(d,e,f)}}return a.I}function ic(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;fc(a);return!0}l.stop=function(){hc(this,this.v.i)};
|
||||
function gc(){for(var a=x(document,w,"panel"),b=0;b<a.length;b++){var c=a[b],d=v(c),e=qb(d.id);e||(e=new $b(d,!0));sb(e,c)}}var ac=7,mc="DEP",oc="ENABLE",nc="EXAM",lc="STEP";Ya(gc);function xc(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.u=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new yc(this);Dc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Kb(this)}pa(xc,u);l=xc.prototype;l.reset=function(){};
|
||||
l.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ka=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,Ec(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Fc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Pa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Pa){m=h.size-(e-k);m>f&&(m=f);h.Pa=e-h.B+m;e=k+16384;f-=m;g++;continue}}return Gc(Hc,e,f)}e=new yc(a,e,m,16384,d);Dc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+n(b)),!0):Gc(Jc,b,c)}
|
||||
function wc(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function vc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.jb||e.Lb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
|
||||
l.Mb=function(a){this.w||(this.D&&Nb(this.D,4)&&Ob(this.D,"memory fault on "+J(this.D,a),!0,!0),this.v.W())};function Gc(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Hc=1,Jc=2;function Kc(a){u.call(this,"Device",a,256)}pa(Kc,u);l=Kc.prototype;l.Ea=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Kb(this)};l.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ka=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new G(this)).data()};
|
||||
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.la=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,Ec(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Fc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,n=16384-(e-k);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Pa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Pa){n=h.size-(e-k);n>f&&(n=f);h.Pa=e-h.B+n;e=k+16384;f-=n;g++;continue}}return Gc(Hc,e,f)}e=new yc(a,e,n,16384,d);Dc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+m(b)),!0):Gc(Jc,b,c)}
|
||||
function wc(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function vc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.jb||e.Lb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
|
||||
l.Mb=function(a){this.w||(this.D&&Nb(this.D,4)&&Ob(this.D,"memory fault on "+J(this.D,a),!0,!0),this.v.W())};function Gc(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Hc=1,Jc=2;function Kc(a){u.call(this,"Device",a,256)}pa(Kc,u);l=Kc.prototype;l.Fa=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Kb(this)};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.la=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new G(this)).data()};
|
||||
l.restore=function(){return!0};Ya(function(){for(var a=x(document,w,"device"),b=0;b<a.length;b++){var c,d=a[b];c=v(d);switch(c.type){case "default":c=new Kc(c),sb(c,d)}}});function yc(a,b,c,d,e){this.H=a;this.id=Lc+=2;this.B=b;this.Pa=c;this.size=d||0;this.type=e||Mc;this.G=e==Nc;this.b=null;this.f=this.D=this.nb;this.g=this.w=this.Qa;this.i=this.v=0;Dc(this);this.jb=this.Lb=!1;if(this.size){a=this.u=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Oc(this,Pc)}else Oc(this)}l=yc.prototype;l.save=function(){return this.u};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.u=a,this.jb=!0):!1};function Oc(a,b){b||(b=Qc);Rc(a,b,void 0);Sc(a,b,void 0)}function Rc(a,b,c){c&&a.i||(a.f=b[0]||a.nb);if(c||void 0===c)a.D=b[0]||a.nb}function Sc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Qa);if(c||void 0===c)a.w=b[1]||a.Qa}l.Ja=function(a,b){b?this.v++||Sc(this,Tc,!1):this.i++||Rc(this,Tc,!1)};function Uc(a,b){b?--a.v||(a.g=a.G?a.Qa:a.w):--a.i||(a.f=a.D)}
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.u=a,this.jb=!0):!1};function Oc(a,b){b||(b=Qc);Rc(a,b,void 0);Sc(a,b,void 0)}function Rc(a,b,c){c&&a.i||(a.f=b[0]||a.nb);if(c||void 0===c)a.D=b[0]||a.nb}function Sc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Qa);if(c||void 0===c)a.w=b[1]||a.Qa}l.Ka=function(a,b){b?this.v++||Sc(this,Tc,!1):this.i++||Rc(this,Tc,!1)};function Uc(a,b){b?--a.v||(a.g=a.G?a.Qa:a.w):--a.i||(a.f=a.D)}
|
||||
function Dc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Rc(a,Tc,!1),(a.v=c.v)&&Sc(a,Tc,!1))}l.nb=function(a,b){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to read invalid address "+J(this.b,b),!0);this.H.Mb(b);return-1};l.Qa=function(a,b,c){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to write "+J(this.b,a)+" to invalid addresses "+J(this.b,c),!0)};l.$b=function(a){return this.u[a]};l.ic=function(a,b){this.u[b]!=a&&(this.u[b]=a,this.jb=!0)};
|
||||
l.Yb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Vc(c,this.B+a,2,c.M)&&c.W(!1)}return this.D(a,b)};l.hc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Vc(d,this.B+b,2,d.I)&&d.W(!1)}this.G?this.Qa(a,0,c):this.w(a,b,c)};var Mc=0,Nc=2,Ic=["NONE","RAM","ROM"],Lc=0,Qc=[],Pc=[yc.prototype.$b,yc.prototype.ic],Tc=[yc.prototype.Yb,yc.prototype.hc];
|
||||
function Wc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ab=0;this.eb=b;this.ea=c;this.bb=Math.round(this.eb/1E4)/100;this.ba=this.bb*this.ea;this.cb=this.Ca=this.fa=this.Va=0;this.A.N=this.A.$a=!1;this.A.Z=a.autoStart;"string"==typeof this.A.Z&&(this.A.Z="true"==this.A.Z);this.A.La=!1;this.Aa=this.ha=0;this.Ba=+a.csStart;this.ma=+a.csInterval;this.na=+a.csStop;this.O=[];this.xb=this.cc.bind(this);this.T=this.M=this.R=this.S=this.L=this.za=this.P=this.oa=this.fb=this.aa=
|
||||
0;this.Ha=null;Kb(this)}pa(Wc,u);l=Wc.prototype;l.Ea=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Ha=a.u;for(a=0;a<Xc.length;a++)(b=this.J[Xc[a]])&&this.H.la(null,Xc[a],b);Kb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.va=function(a,b){var c=Yc(this.H,"autoStart");null!=c?this.A.Z="true"==c?!0:"false"==c?!1:!!c:null==this.A.Z&&(this.A.Z=!this.D&&void 0===this.J.run);if(!b){if(a){Zc(this);if(!this.restore(a))return!1;$c(this)}else this.reset();this.D?(a=this.D,b=this.A.Z,a.Ba=!0,a.j("Type ? for help with PDPjs Debugger commands"),ad(a),b||bd(a),a.ya&&(b=a.ya,a.ya=null,cd(a,b))):this.status("No debugger detected");this.A.Z||this.j("CPU will not be auto-started "+(this.Ha?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.ka=function(a){return a?this.save():!0};l.Z=function(){return this.A.N?!0:this.A.Z?(pc(this),!0):!1};l.Bb=function(){return 0};function $c(a){void 0===a.Ba&&(a.Ba=0);void 0===a.ma&&(a.ma=-1);void 0===a.na&&(a.na=-1);a.A.La=0<=a.Ba&&0<a.ma;a.A.La&&(a.Aa=0,a.ha=a.Ba-a.T)}function tc(a,b){if(a.A.La){var c=!1;a.Aa=a.Aa+a.Bb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.ma,c=!0);0<=a.na&&a.na<=dd(a)&&(a.ma=a.na=-1,$c(a),a.W(),c=!0);c&&a.j(dd(a)+" cycles: checksum="+q(a.Aa))}}
|
||||
l.la=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.V)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.V);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Xa?" (waiting for notification)":""))+".");a=!1}a&&(d.A.N?d.W():pc(d))},!0;case "speed":return this.J[b]=
|
||||
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){ed(d,d.ea<<1,!0)},c.textContent=this.ba.toFixed(2)+"Mhz",!0}return!1};function sc(a,b,c){a.T+=b;c&&(a.R=a.S=0)}function fd(a,b){var c=1;b&&1<a.ea&&a.aa&&(c=a.aa/a.bb);a.cb=Math.round(1E3/gd);a.Ca=Math.floor(a.eb/gd*c);b||(a.fa=a.Ca);a.Va=0}function dd(a){return a.T+a.M+a.R-a.S}function Zc(a){a.aa=0;a.fb=0;a.T=a.M=a.R=a.S=0;$c(a);ed(a,1)}
|
||||
function ed(a,b,c){var d=!1;if(void 0!==b){.8>a.aa/a.ba?b=1:d=!0;a.ea=b;b=a.bb*a.ea;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.H&&hd(a.H)}sc(a,a.M);a.M=0;a.L=nb();a.P=0;fd(a);return d}function id(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
|
||||
function Wc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ab=0;this.eb=b;this.fa=c;this.bb=Math.round(this.eb/1E4)/100;this.ba=this.bb*this.fa;this.cb=this.Da=this.ga=this.Va=0;this.A.N=this.A.$a=!1;this.A.Z=a.autoStart;"string"==typeof this.A.Z&&(this.A.Z="true"==this.A.Z);this.A.La=!1;this.Ba=this.ia=0;this.Ca=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.O=[];this.xb=this.cc.bind(this);this.T=this.M=this.R=this.S=this.L=this.Aa=this.P=this.pa=this.fb=this.aa=
|
||||
0;this.Ia=null;Kb(this)}pa(Wc,u);l=Wc.prototype;l.Fa=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Ia=a.u;for(a=0;a<Xc.length;a++)(b=this.J[Xc[a]])&&this.H.ma(null,Xc[a],b);Kb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.wa=function(a,b){var c=Yc(this.H,"autoStart");null!=c?this.A.Z="true"==c?!0:"false"==c?!1:!!c:null==this.A.Z&&(this.A.Z=!this.D&&void 0===this.J.run);if(!b){if(a){Zc(this);if(!this.restore(a))return!1;$c(this)}else this.reset();this.D?(a=this.D,b=this.A.Z,a.Ca=!0,a.j("Type ? for help with PDPjs Debugger commands"),ad(a),b||bd(a),a.za&&(b=a.za,a.za=null,cd(a,b))):this.status("No debugger detected");this.A.Z||this.j("CPU will not be auto-started "+(this.Ia?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.la=function(a){return a?this.save():!0};l.Z=function(){return this.A.N?!0:this.A.Z?(pc(this),!0):!1};l.Bb=function(){return 0};function $c(a){void 0===a.Ca&&(a.Ca=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.A.La=0<=a.Ca&&0<a.na;a.A.La&&(a.Ba=0,a.ia=a.Ca-a.T)}function tc(a,b){if(a.A.La){var c=!1;a.Ba=a.Ba+a.Bb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.na,c=!0);0<=a.oa&&a.oa<=dd(a)&&(a.na=a.oa=-1,$c(a),a.W(),c=!0);c&&a.j(dd(a)+" cycles: checksum="+q(a.Ba))}}
|
||||
l.ma=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.V)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.V);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Xa?" (waiting for notification)":""))+".");a=!1}a&&(d.A.N?d.W():pc(d))},!0;case "speed":return this.J[b]=
|
||||
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){ed(d,d.fa<<1,!0)},c.textContent=this.ba.toFixed(2)+"Mhz",!0}return!1};function sc(a,b,c){a.T+=b;c&&(a.R=a.S=0)}function fd(a,b){var c=1;b&&1<a.fa&&a.aa&&(c=a.aa/a.bb);a.cb=Math.round(1E3/gd);a.Da=Math.floor(a.eb/gd*c);b||(a.ga=a.Da);a.Va=0}function dd(a){return a.T+a.M+a.R-a.S}function Zc(a){a.aa=0;a.fb=0;a.T=a.M=a.R=a.S=0;$c(a);ed(a,1)}
|
||||
function ed(a,b,c){var d=!1;if(void 0!==b){.8>a.aa/a.ba?b=1:d=!0;a.fa=b;b=a.bb*a.fa;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.H&&hd(a.H)}sc(a,a.M);a.M=0;a.L=nb();a.P=0;fd(a);return d}function id(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
|
||||
function rc(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function kd(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c}
|
||||
l.cc=function(){if(this.A.N){this.Va>=this.eb&&fd(this,!0);this.oa=0;this.za=nb();if(this.P){var a=this.za-this.P;a>this.cb&&(this.L+=a,this.L>this.za&&(this.L=this.za))}try{do{var b=id(this,this.A.La?1:this.Ca);try{this.Ra(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.oa+=b;this.M+=b;tc(this,b);rc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ca;++this.fb>=ld&&(this.H&&I(this.H,void 0),this.fb=0);break}}while(this.A.N)}catch(e){this.W();this.H&&this.H.stop(nb(),dd(this));yb(this,
|
||||
e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.xb;this.P=nb();var c=this.cb;this.oa&&(c=Math.round(c*this.oa/this.Ca));var c=c-(this.P-this.za),d=this.P-this.L;d&&(this.aa=Math.round(this.M/(10*d))/100,864E5<=d&&(this.T=0,ed(this)));if(0>c||this.aa<this.ba)-1E3>c&&(this.L-=c),c=0;this.Va+=this.oa;this.P+=c;a(b,c)}}};
|
||||
l.cc=function(){if(this.A.N){this.Va>=this.eb&&fd(this,!0);this.pa=0;this.Aa=nb();if(this.P){var a=this.Aa-this.P;a>this.cb&&(this.L+=a,this.L>this.Aa&&(this.L=this.Aa))}try{do{var b=id(this,this.A.La?1:this.Da);try{this.Ra(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.pa+=b;this.M+=b;tc(this,b);rc(this,b);this.ga-=b;if(0>=this.ga){this.ga+=this.Da;++this.fb>=ld&&(this.H&&I(this.H,void 0),this.fb=0);break}}while(this.A.N)}catch(e){this.W();this.H&&this.H.stop(nb(),dd(this));yb(this,
|
||||
e.stack||e.message);return}if(this.A.N){a=setTimeout;b=this.xb;this.P=nb();var c=this.cb;this.pa&&(c=Math.round(c*this.pa/this.Da));var c=c-(this.P-this.Aa),d=this.P-this.L;d&&(this.aa=Math.round(this.M/(10*d))/100,864E5<=d&&(this.T=0,ed(this)));if(0>c||this.aa<this.ba)-1E3>c&&(this.L-=c),c=0;this.Va+=this.pa;this.P+=c;a(b,c)}}};
|
||||
function pc(a,b){if(!Ib(a))if(a.A.N)a.j(a.toString()+" busy");else{ed(a);a.A.N=!0;a.A.$a=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&hd(a.H,!0),a.H.start(a.L,dd(a)));a.D||a.status("Started");setTimeout(a.xb,0)}}l.Ra=function(){return 0};l.W=function(a){var b=!1;if(this.A.N){kd(this);sc(this,this.M);this.M=0;this.A.N=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(nb(),dd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"];
|
||||
function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.wb=b;this.Sa=+a.addrReset||0;this.Jb=nd.bind(this);this.w=K.bind(this);this.xa=null;this.sb=[];this.A.complete=!1}pa(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.wb);this.A.N&&this.W();this.b=this.K=this.Da=0;this.i=this.ya=this.Sa;this.I=this.ra=-1;this.F=this.u=0;this.gb=[0,0];this.pa=[0,0];this.ga=[0,0];this.qa=[0,0];this.wa=this.i;this.C=0;this.f=this.Zb;this.g=this.jc;this.xa=null;Zc(this);this.A.error=!1;Wc.prototype.reset.call(this)};
|
||||
l.Bb=function(){return 0};l.save=function(){var a=new G(this);a.set(0,[this.b,this.K,this.Da,this.i,this.ra,this.I,this.u,this.C,this.ya,this.wa,this.Sa]);a.set(1,[]);a.set(2,[this.T,this.ea,this.A.Z]);a.set(3,od(this));a.set(4,jd(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];ha();ca();ha();var c=b[Symbol.iterator];b=c?c.call(b):ja(b);this.b=b.next().value;this.K=b.next().value;this.Da=b.next().value;this.i=b.next().value;this.ra=b.next().value;this.I=b.next().value;this.u=b.next().value;this.C=b.next().value;this.ya=b.next().value;this.wa=b.next().value;this.Sa=b.next().value;b=a[2];this.T=b[0];ed(this,b[1]);this.A.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.sb.length;d++){var e=this.sb[d];if(e.gc===b[c]){d=e;break a}}d=
|
||||
null}d&&(d.next=this.xa,this.xa=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function pd(a,b){var c=a.i;a.i=(c+b)%Rb;return c}function H(a,b){a.i=b%Rb}function od(a){var b=[];for(a=a.xa;a;)b.push(a.gc),a=a.next;return b}l.Zb=function(a){var b=this.G;a=this.wa=a;return b.b[(a&b.u)>>>b.i].f(a&16383,a)};l.jc=function(a,b){var c=this.G;a=this.wa=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b};
|
||||
l.Ra=function(a){this.A.complete=!0;var b=this.D?qd(this.D)?1:this.A.$a?-1:0:0,c=a?this.A.$a?0:1:-1;this.A.$a=!1;this.R=this.S=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(rd(this.D,this.i,c)){this.W();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.xa||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&rd(this.D,this.i,c)){this.W();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.f(this.b):0<=this.ra?(this.K=this.Da=this.f(this.ra),this.ra=-1):(this.K=this.Da=
|
||||
this.f(this.ya=this.i),this.i=(this.i+1)%Rb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.f(a)&Qb;a=this.K&4194304?-1:this.Da/Xb|0;0<=a&&this.Jb(a)}while(0<this.S);return this.A.complete?this.R-this.S:!1===this.A.complete?-1:0};Ya(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new md(d);sb(d,c)}});function nd(a){sd[a>>4].call(this,a,a&15)}function M(a){this.w(a)}
|
||||
function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.wb=b;this.Sa=+a.addrReset||0;this.Jb=nd.bind(this);this.w=K.bind(this);this.ya=null;this.sb=[];this.A.complete=!1}pa(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.wb);this.A.N&&this.W();this.b=this.K=this.Ea=0;this.i=this.za=this.Sa;this.I=this.sa=-1;this.F=this.u=0;this.gb=[0,0];this.qa=[0,0];this.ha=[0,0];this.ra=[0,0];this.xa=this.i;this.C=0;this.f=this.Zb;this.g=this.jc;this.ya=null;Zc(this);this.A.error=!1;Wc.prototype.reset.call(this)};
|
||||
l.Bb=function(){return 0};l.save=function(){var a=new G(this);a.set(0,[this.b,this.K,this.Ea,this.i,this.sa,this.I,this.u,this.C,this.za,this.xa,this.Sa]);a.set(1,[]);a.set(2,[this.T,this.fa,this.A.Z]);a.set(3,od(this));a.set(4,jd(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];ha();ca();ha();var c=b[Symbol.iterator];b=c?c.call(b):ja(b);this.b=b.next().value;this.K=b.next().value;this.Ea=b.next().value;this.i=b.next().value;this.sa=b.next().value;this.I=b.next().value;this.u=b.next().value;this.C=b.next().value;this.za=b.next().value;this.xa=b.next().value;this.Sa=b.next().value;b=a[2];this.T=b[0];ed(this,b[1]);this.A.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.sb.length;d++){var e=this.sb[d];if(e.gc===b[c]){d=e;break a}}d=
|
||||
null}d&&(d.next=this.ya,this.ya=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function pd(a,b){var c=a.i;a.i=(c+b)%Rb;return c}function H(a,b){a.i=b%Rb}function od(a){var b=[];for(a=a.ya;a;)b.push(a.gc),a=a.next;return b}l.Zb=function(a){var b=this.G;a=this.xa=a;return b.b[(a&b.u)>>>b.i].f(a&16383,a)};l.jc=function(a,b){var c=this.G;a=this.xa=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b};
|
||||
l.Ra=function(a){this.A.complete=!0;var b=this.D?qd(this.D)?1:this.A.$a?-1:0:0,c=a?this.A.$a?0:1:-1;this.A.$a=!1;this.R=this.S=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(rd(this.D,this.i,c)){this.W();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ya||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&rd(this.D,this.i,c)){this.W();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.f(this.b):0<=this.sa?(this.K=this.Ea=this.f(this.sa),this.sa=-1):(this.K=this.Ea=
|
||||
this.f(this.za=this.i),this.i=(this.i+1)%Rb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.f(a)&Qb;a=this.K&4194304?-1:this.Ea/Xb|0;0<=a&&this.Jb(a)}while(0<this.S);return this.A.complete?this.R-this.S:!1===this.A.complete?-1:0};Ya(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new md(d);sb(d,c)}});function nd(a){sd[a>>4].call(this,a,a&15)}function M(a){this.w(a)}
|
||||
function td(){var a=0,b=this.f(this.b),c=b/Yb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Yb+(d<<24)+(b&16777215);a&&(b=(b+a)%E);this.g(this.b,b)}function ud(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Yb&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}}
|
||||
function vd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Yb&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%E;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function wd(a,b){this.g(b,this.f(this.b))}function xd(a,b){this.g(b,this.b)}function yd(a,b){this.g(this.b,this.f(b))}function zd(a,b){this.g(b,0)}function Ad(a,b){this.g(b,C-this.f(b))}function Td(a,b){this.g(b,C)}
|
||||
function Ud(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Vd(a,d,c)+(c-(c&y)))}function Wd(a,b){var c=this.f(b);this.g(b,Vd(a,c,0))}function Xd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Vd(a,c,b)+(b-(b&y)))}function Yd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Zd(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,Vd(a,d,c)+c)}
|
||||
function $d(a,b){var c=this.b*z,d=this.f(b);this.g(b,Vd(a,d,c)+c)}function ae(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,Vd(a,c,b)+b)}function be(a,b){var c=this.f(this.b),d=(c&y)*z,c=Vd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ce(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,de(a,d,c)+c)}function ee(a,b){var c=this.f(b);this.g(b,de(a,c,this.b)+this.b)}function fe(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,de(a,c,b)+b)}
|
||||
function ge(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=y,a){case 256:d+=y*z;break;case 384:d+=c>Sb?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function he(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,de(a,d,c)+c)}function ie(a,b){var c=this.f(b);this.g(b,de(a,c,0))}function je(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,de(a,c,b)+b)}function ke(a,b){var c=this.f(this.b),d=c/z|0,c=de(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function N(a){le[a&7].call(this,a,a>>3&127)}
|
||||
function me(){}function ne(){}function K(a){this.j("undefined opcode: "+n(a));pd(this,-1);this.W()}function oe(a){a>A&&(a!=B?a=Ub-a:this.u|=163840);return a}function O(a,b){var c=(a+b)%E;pe.call(this,a,b,c);return c}
|
||||
function qe(a,b,c){var d=!1,e=!1,f=b-b%B;a=a%B+b*B%E;b=this.F=f+Math.trunc(b/2);c>A&&(c=E-c,d=!d);b>A&&(a?(b=C-b,a=E-a):b&&(b=E-b),e=!0,d=!d);if(b>=c)return this.u|=131104,-1;f=this.gb;f[0]=0;f[1]=0;f=this.pa;f[0]=1;f[1]=0;f=this.ga;f[0]=c;f[1]=0;c=this.qa;c[0]=a;for(c[1]=b;0<re(this.qa,this.ga);)se(this.ga,this.ga),se(this.pa,this.pa);do{if(0<=re(this.qa,this.ga)&&(b=this.qa,a=this.ga,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=E,b[1]--),se(this.gb,this.pa),te(this.qa)))break;ue(this.ga);ue(this.pa)}while(!te(this.pa));
|
||||
a=this.gb[0];this.F=this.qa[0];d&&a&&(a=E-a);e&&this.F&&(this.F=E-this.F);return a}
|
||||
function me(){}function ne(){}function K(a){this.j("undefined opcode: "+m(a));pd(this,-1);this.W()}function oe(a){a>A&&(a!=B?a=Ub-a:this.u|=163840);return a}function O(a,b){var c=(a+b)%E;pe.call(this,a,b,c);return c}
|
||||
function qe(a,b,c){var d=!1,e=!1,f=b-b%B;a=a%B+b*B%E;b=this.F=f+Math.trunc(b/2);c>A&&(c=E-c,d=!d);b>A&&(a?(b=C-b,a=E-a):b&&(b=E-b),e=!0,d=!d);if(b>=c)return this.u|=131104,-1;f=this.gb;f[0]=0;f[1]=0;f=this.qa;f[0]=1;f[1]=0;f=this.ha;f[0]=c;f[1]=0;c=this.ra;c[0]=a;for(c[1]=b;0<re(this.ra,this.ha);)se(this.ha,this.ha),se(this.qa,this.qa);do{if(0<=re(this.ra,this.ha)&&(b=this.ra,a=this.ha,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=E,b[1]--),se(this.gb,this.qa),te(this.ra)))break;ue(this.ha);ue(this.qa)}while(!te(this.qa));
|
||||
a=this.gb[0];this.F=this.ra[0];d&&a&&(a=E-a);e&&this.F&&(this.F=E-this.F);return a}
|
||||
function ve(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=E-d,b=!b);e>A&&(e=E-e,b=!b);if(d<z&&e<z)a=d*e,f=0;else{a=d&y;d=Math.trunc(d/z);f=e&y;var e=Math.trunc(e/z),g=a*f,h=d*f+Math.trunc(g/z);f=Math.trunc(h/z);h=(h&y)+a*e;a=h*z+(g&y);f+=Math.trunc(h/z)+d*e}b&&(a?(f=C-f,a=E-a):f&&(f=E-f));if(c)return(f||a>A)&&(f!=C||a<=A)&&(this.u|=131072),a;c=a;b=f;a=b-b%B;b=2*b%E+Math.trunc(c/B);c=a+c%B;d=b-b%B;a!=d&&(b=a+(b-d),this.u|=131072);this.F=c;return b}
|
||||
function we(a){a?a==B?this.u|=163840:a=Ub-a:this.u|=98304;return a}function P(a,b){var c=a-b;0>c&&(c+=E);pe.call(this,c,b,a);return c}function pe(a,b,c){a=Math.trunc(a/Tb);b=Math.trunc(b/Tb);c=Math.trunc(c/Tb);var d=a^(a^b)&(b^c);this.u=this.u|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function Q(a,b){return((a/F|0)&(b/F|0))*F+((a&b)>>>0)}function R(a,b){return Q(a,(~(b/F|0)&15)*F+(~b>>>0))}function S(a,b){return(a<B?a:a-E)-(b<B?b:b-B)}
|
||||
function xe(a,b){return(~((a/F|0)^(b/F|0))&15)*F+(~(a^b)>>>0)}function T(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function U(a){return a<B?a:a-E}function V(a,b){return((a/F|0)^(b/F|0))*F+((a^b)>>>0)}function W(a){return(a/z|0)+(a&y)*z}function de(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Sb?y*z:0}return b}function Vd(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b}
|
||||
|
|
@ -122,7 +122,7 @@ this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36
|
|||
d<C)this.u|=131072;if(71<=a){if(0<e&&e<B||e>A&&e<C)this.u|=131072;d=0}else d=e*Math.pow(2,a-35)%B,c=B-Math.pow(2,70-a),f<=A?e+c>A&&(this.u|=131072):e-c<=A&&(this.u|=131072);e=0;f>A&&(d+=B,e+=B)}else d=d*Math.pow(2,a)%B+Math.trunc(e%B/Math.pow(2,35-a)),e=e*Math.pow(2,a)%B,c=B-Math.pow(2,35-a),f<=A?f+c>A&&(this.u|=131072):(f-c<=A&&(this.u|=131072),d+=B,e+=B)}else-36>=a?(e=-72>=a?d>A?C:0:Math.trunc(d%B/Math.pow(2,-a-35)),d<=A?d=0:(d=C,e+=B)):(c=d>A?E-Math.pow(2,36+a):0,e=Math.trunc(e%B/Math.pow(2,-a))+
|
||||
d%B*Math.pow(2,35+a)%B,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=B));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%E+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%E+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+
|
||||
1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%E,d=0):(c=c*Math.pow(2,a)%E+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%E):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%E,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},K,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/z|0,c=c&y;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&y,c=c+1&y,this.A.N||(this.g(b,d*
|
||||
z+c),a||pd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<B&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=B&&H(this,this.b)},function(a){this.w(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,H(this,this.b))},function(){this.ra=this.b},K,function(a){this.w(a)},function(a,b){a=this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=E&&(a-=E);a/z|0||(this.u|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145;
|
||||
z+c),a||pd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<B&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=B&&H(this,this.b)},function(a){this.w(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,H(this,this.b))},function(){this.sa=this.b},K,function(a){this.w(a)},function(a,b){a=this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=E&&(a-=E);a/z|0||(this.u|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145;
|
||||
0>a&&(a+=E);(a/z|0)==y&&(this.u|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.u&y)*z+this.i);H(this,this.b+1)},function(a,b){this.g(b,(this.u&y)*z+this.i);H(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,O.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,O.call(this,this.f(b),this.f(this.b))))},
|
||||
function(a,b){this.g(b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,P.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,P.call(this,this.f(b),this.f(this.b))))},me,function(a,b){0>S(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){S(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=S(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=S(this.f(b),this.b)&&H(this,
|
||||
this.i+1)},function(a,b){S(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0<S(this.f(b),this.b)&&H(this,this.i+1)},ne,function(a,b){0>S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){S(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){S(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){0<S(this.f(b),this.f(this.b))&&
|
||||
|
|
@ -149,130 +149,130 @@ this.f(b);Q(a,this.b*z)||H(this,this.i+1);this.g(b,T(a,this.b*z))},function(a,b)
|
|||
Q(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);Q(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));Q(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,
|
||||
N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],le=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.u&=-131073);a&131072&&(this.u&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.u&131072&&(a|=8);this.u&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
|
||||
function ye(a){u.call(this,"ROM",a,128);this.U=this.b=null;this.C=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=va(this.w);if(this.w){a=this.w;var b=wa(this.F);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(lb(c.Ua,a,b),(a=Ma(a,b))?(c.b=a.Y,c.U=a.U):c.w=null);ze(c)})}}pa(ye,u);
|
||||
ye.prototype.Ea=function(a,b,c,d){this.G=b;this.v=c;this.D=d;ze(this)};ye.prototype.va=function(){this.U&&(this.D&&Ae(this.D,this.id,this.C,this.u,this.U),delete this.U);return!0};ye.prototype.ka=function(){return!0};
|
||||
ye.prototype.Fa=function(a,b,c,d){this.G=b;this.v=c;this.D=d;ze(this)};ye.prototype.wa=function(){this.U&&(this.D&&Ae(this.D,this.id,this.C,this.u,this.U),delete this.U);return!0};ye.prototype.la=function(){return!0};
|
||||
function ze(a){if(!Jb(a)){if(a.w){if(!a.b||!a.G)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)yb(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.u,8,!0)+")");else{var b;b=a.C;if(Fc(a.G,b,a.u,Nc)){var c;for(c=0;c<a.b.length;c++)vc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.u,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.u;g=0;for(e>>>=
|
||||
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Kb(a)}}Ya(function(){for(var a=x(document,w,"rom"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new ye(d);sb(d,c)}});
|
||||
function Be(a){u.call(this,"RAM",a);this.U=this.Ia=null;this.i=+a.addr;this.u=+a.size;this.ta=a.load;this.sa=a.exec;null!=this.ta&&(this.ta=+this.ta);null!=this.sa&&(this.sa=+this.sa);this.w=this.F=!1;this.b=a.file;this.C=va(this.b);if(this.b){a=this.b;var b=wa(this.C);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(lb(c.Ua,a,b),(a=Ma(a,b))?(c.Ia=a.Ia,
|
||||
c.U=a.U,null==c.ta&&(c.ta=a.ta),null==c.sa&&(c.sa=a.sa)):c.b=null);Ce(c)})}}pa(Be,u);Be.prototype.Ea=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.va=function(a,b){this.U&&(this.D&&Ae(this.D,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};Be.prototype.ka=function(){return!0};
|
||||
function Ce(a){if(a.G&&(!a.w&&a.u&&(Fc(a.G,a.i,a.u,1)?a.w=!0:a.u=0),!Jb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ia)return;De(a,a.Ia,a.ta,a.sa,a.i)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.F=!0;Kb(a)}}
|
||||
Be.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-B&&(g+=E);for(var g=Math.trunc(Math.abs(g))%E,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Ia&&De(this,this.Ia,this.ta,this.sa,this.i,!this.D)}this.F=!1};
|
||||
function De(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)vc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Sa=d,H(a,d),f?a.A.V?a.A.N||pc(a):a.A.Z=!0:a.D&&a.A.V?a.W()||a.H.A.reset||(ad(a.D),I(a.H,-1)):!1===f&&a.W(),!a.A.N&&a.Ha&&a.Ha.stop()));return g}Ya(function(){for(var a=x(document,w,"ram"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Be(d);sb(d,c)}});
|
||||
function Ee(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Fe;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.la(null,a,b))}this.b=this.C=null;this.exports={connect:this.Cb,receiveData:this.Ya,receiveStatus:this.ac,setConnection:this.dc}}pa(Ee,u);l=Ee.prototype;
|
||||
l.la=function(a,b,c){var d=this;switch(b){case Fe:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ra.qb:ra.Gb:46==c?b=ra.qb:a.ctrlKey&&c>=ra.pb&&c<=ra.Hb&&(b=c-(ra.pb-ra.Db));b&&(a.preventDefault&&a.preventDefault(),d.Ya(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ra.Fb&&(b=ra.Eb);d.Ya(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ya(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Ea=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Kb(this)};
|
||||
l.Cb=function(a){if(!this.b){var b=Yc(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.Ta)return;c=Da(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.C=e.receiveData){this.u=a;this.status("Connected "+this.Ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.va=function(a,b){if(!b)if(this.Cb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.ka=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new G(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ya=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.ac=function(){};l.dc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Fe="buffer";
|
||||
Ya(function(){for(var a=x(document,w,"serial"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ee(d);sb(d,c)}});function Ge(a){u.call(this,"Debugger",a);this.ca=+a.base||16;this.ea=32;this.oa=["{","}"];this.na=["[","]"];this.C=0;this.R=!1;this.w=-1;this.u=[];this.K={}}pa(Ge,u);Ge.prototype.kb=function(){return-1};Ge.prototype.lb=function(){};
|
||||
function Be(a){u.call(this,"RAM",a);this.U=this.Ja=null;this.i=+a.addr;this.u=+a.size;this.ua=a.load;this.ta=a.exec;null!=this.ua&&(this.ua=+this.ua);null!=this.ta&&(this.ta=+this.ta);this.w=this.F=!1;this.b=a.file;this.C=va(this.b);if(this.b){a=this.b;var b=wa(this.C);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(lb(c.Ua,a,b),(a=Ma(a,b))?(c.Ja=a.Ja,
|
||||
c.U=a.U,null==c.ua&&(c.ua=a.ua),null==c.ta&&(c.ta=a.ta)):c.b=null);Ce(c)})}}pa(Be,u);Be.prototype.Fa=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.wa=function(a,b){this.U&&(this.D&&Ae(this.D,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};Be.prototype.la=function(){return!0};
|
||||
function Ce(a){if(a.G&&(!a.w&&a.u&&(Fc(a.G,a.i,a.u,1)?a.w=!0:a.u=0),!Jb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Ja)return;De(a,a.Ja,a.ua,a.ta,a.i)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.F=!0;Kb(a)}}
|
||||
Be.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-B&&(g+=E);for(var g=Math.trunc(Math.abs(g))%E,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Ja&&De(this,this.Ja,this.ua,this.ta,this.i,!this.D)}this.F=!1};
|
||||
function De(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)vc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Sa=d,H(a,d),f?a.A.V?a.A.N||pc(a):a.A.Z=!0:a.D&&a.A.V?a.W()||a.H.A.reset||(ad(a.D),I(a.H,-1)):!1===f&&a.W(),!a.A.N&&a.Ia&&a.Ia.stop()));return g}Ya(function(){for(var a=x(document,w,"ram"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Be(d);sb(d,c)}});
|
||||
function Ee(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Fe;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.ma(null,a,b))}this.b=this.C=null;this.exports={connect:this.Cb,receiveData:this.Ya,receiveStatus:this.ac,setConnection:this.dc}}pa(Ee,u);l=Ee.prototype;
|
||||
l.ma=function(a,b,c){var d=this;switch(b){case Fe:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ra.qb:ra.Gb:46==c?b=ra.qb:a.ctrlKey&&c>=ra.pb&&c<=ra.Hb&&(b=c-(ra.pb-ra.Db));b&&(a.preventDefault&&a.preventDefault(),d.Ya(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ra.Fb&&(b=ra.Eb);d.Ya(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ya(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Fa=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Kb(this)};
|
||||
l.Cb=function(a){if(!this.b){var b=Yc(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.Ta)return;c=Da(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.C=e.receiveData){this.u=a;this.status("Connected "+this.Ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.wa=function(a,b){if(!b)if(this.Cb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.la=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new G(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ya=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.ac=function(){};l.dc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Fe="buffer";
|
||||
Ya(function(){for(var a=x(document,w,"serial"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Ee(d);sb(d,c)}});function Ge(a){u.call(this,"Debugger",a);this.ca=+a.base||16;this.fa=32;this.qa=["{","}"];this.oa=["[","]"];this.C=0;this.R=!1;this.w=-1;this.u=[];this.K={}}pa(Ge,u);Ge.prototype.kb=function(){return-1};Ge.prototype.lb=function(){};
|
||||
function He(a,b,c,d){if(c)if(b){0>a.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.u[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Da(b.substring(c,f))),c=f+1}}return a}
|
||||
function Ie(a,b,c,d){var e=b;c=c||a.ea;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else if(32>=c)e=b|0;else if(a=Math.pow(2,c-1),b<-a||b>=a)e=b%a;b!=e&&(b=e);return b}
|
||||
function Ie(a,b,c,d){var e=b;c=c||a.fa;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else if(32>=c)e=b|0;else if(a=Math.pow(2,c-1),b<-a||b>=a)e=b%a;b!=e&&(b=e);return b}
|
||||
function Je(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f=b.pop(),g=b.pop();switch(e){case "*":e=g*f;break;case "/":if(!f)return!1;e=g/f;break;case "%":if(!f)return!1;e=g%f;break;case "+":e=g+f;break;case "-":e=g-f;break;case "<<":e=g<<f;break;case ">>":e=g>>f;break;case ">>>":e=g>>>f;break;case "<":e=g<f?1:0;break;case "<=":e=g<=f?1:0;break;case ">":e=g>f?1:0;break;case ">=":e=g>=f?1:0;break;case "==":e=g==f?1:0;break;case "!=":e=g!=f?1:0;break;case "&":e=
|
||||
32>=a.ea?g&f:((g/Ke|0)&(f/Ke|0))*Ke+((g&f)>>>0);break;case "!":case "|":e=32>=a.ea?g|f:(g/Ke|0|f/Ke|0)*Ke+((g|f)>>>0);break;case "^^":e=g^f;break;case "&&":e=g&&f?1:0;break;case "||":e=g||f?1:0;break;default:return!1}b.push(Ie(a,e,a.ea))}return!0}
|
||||
function X(a,b,c){var d;b&&(b=Le(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],t=p.length,p=Da(p);if(!p){f=!0;break}p=Me(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(Ie(a,p,a.ea));if(e==m.length)break;var p=m[e++],D=p.length;k.length&&Ne[p]<Ne[k[k.length-1]]&&Je(a,h,k,1);k.push(p);b=b.substr(t+D)}Je(a,h,k)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):
|
||||
32>=a.fa?g&f:((g/Ke|0)&(f/Ke|0))*Ke+((g&f)>>>0);break;case "!":case "|":e=32>=a.fa?g|f:(g/Ke|0|f/Ke|0)*Ke+((g|f)>>>0);break;case "^^":e=g^f;break;case "&&":e=g&&f?1:0;break;case "||":e=g||f?1:0;break;default:return!1}b.push(Ie(a,e,a.fa))}return!0}
|
||||
function X(a,b,c){var d;b&&(b=Le(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],n=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<n.length;){var p=n[e++],t=p.length,p=Da(p);if(!p){f=!0;break}p=Me(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(Ie(a,p,a.fa));if(e==n.length)break;var p=n[e++],D=p.length;k.length&&Ne[p]<Ne[k[k.length-1]]&&Je(a,h,k,1);k.push(p);b=b.substr(t+D)}Je(a,h,k)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):
|
||||
(d=h.pop(),c&&Oe(a,null,d))}return d}
|
||||
function Le(a,b){var c,d=a.oa[0],e=a.oa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=X(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?J(a,g):"undefined")}if(a.na.length)for(d=a.na[0],e=a.na[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){d=null;switch(b[1].toLowerCase()){case "ops":d=
|
||||
function Le(a,b){var c,d=a.qa[0],e=a.qa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=X(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?J(a,g):"undefined")}if(a.oa.length)for(d=a.oa[0],e=a.oa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){d=null;switch(b[1].toLowerCase()){case "ops":d=
|
||||
0}if(null==d)break;a=a.replace(b[0],d.toString())}return a}function Me(a,b,c,d){var e;null!=b?(e=a.kb(b),0<=e?e=a.lb(e):(e=a.K[b],null==e&&(e=sa(b,a.ca))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
|
||||
function Oe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,m=void 0,p=8,t="";p?32<p&&(p=32):p=32;for(var D=null==k||isNaN(k),da=m=m||p;0<p--;)da||(t=","+t,da=m),t=(D?"?":k&1?"1":"0")+t,k>>=1,da--;g=t+g;d>>=8}d=q(c,0,!0)+" "+c+". "+n(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Pe(a){var b=a.K;a.K={};return b}
|
||||
function Qe(a,b){if(b)return Oe(a,b,a.K[b]);var c=0;for(b in a.K)Oe(a,b,a.K[b]),c++;return 0<c}function J(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:a=n(b,0<c?(c+2)/3|0:0);break;case 10:a=ua(b,0<c?Math.ceil(.3*c):0);break;default:a=q(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Ne={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9},Ke=Math.pow(2,32);
|
||||
function Re(a){Ge.call(this,a);this.Ba=!1;this.za=18;this.ea=36;this.oa=["<",">"];this.na=[];this.Aa=Y();this.L=Y(0);this.ma=Y(0);this.ba=Y(0);this.F=[];this.b=this.M=this.I=[];Se(this);this.S=this.ha=0;this.i=[];this.wa=void 0;Te(this);this.D=this;this.pa={};this.X=this.yb=0;this.T=null;this.P=[];Ue(this,a.messages);this.ya=a.commands;this.O=0;this.Ha=this.xa=null;this.C=this.Da=this.Ca=this.ga=this.ra=0;this.qa=this.fa=this.aa=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return cd(b,
|
||||
a)}):void 0===global[w]&&(global[w]=function(a){return cd(b,a)})}pa(Re,Ge);function Ve(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,Wa:void 0===b?!1:b,ia:!1,ca:c}}function We(a,b,c,d){a.B=b;a.Wa=c||!1;a.ia=!1;a.ca=d}function Xe(a){return[a.B,a.Wa,a.ia,a.ca,a.Za]}function Ye(a,b){var c=Y(b[0],b[1],b[2]);c.ia=b[3];b[4]&&(c.tb=He(a,c.Za=b[4]));return c}l=Re.prototype;
|
||||
l.Ea=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.fa=a.u;this.za=b.F;(a=Yc(a,"messages"))&&Ue(this,a);Ze(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Ve($e(d,c,d.ma));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var p=b[e];p.type==c?m++||d.j("..."):(c=p.type,m=Ic[c],p&&d.j(q(p.id,8)+" %"+q(e<<d.G.i,8)+" %"+q(p.B,8)+
|
||||
" "+q(p.Pa,4,!0)+" "+q(p.size,4,!0)+" "+m),c!=Mc&&(c=-1),m=0);a+=16384;e++}}});Kb(this)};
|
||||
l.la=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",cd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.u.length-1&&(b=d.u[++d.w])):40==a.keyCode&&(0<d.w?b=d.u[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Wa(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";cd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Wa(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=qc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function bd(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.Ga=function(a,b){var c=-1,d=Ve(a);-1!==d&&(c=wc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.rb=function(a,b,c){var d=Ve(a);-1!==d&&(vc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),I(this.H,-1))};
|
||||
function $e(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){b=Le(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var g,f=b,h;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var f=f.toUpperCase(),k=0;k<a.F.length;k++){var m=a.F[k].U[f];if(null!=m){h=m.o;break}}null!=h&&(g=Y(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=X(a,b,void 0)}null!=f&&(f=af(f,a.za),We(c,f,d,e));return c}function bf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.tb=He(a,b.Za=c[2]))}
|
||||
function af(a,b){0>a&&a>=-B&&(a+=E);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function cf(a){return n(a/Rb,6)+" "+n(a%Rb,6)}
|
||||
function Ue(a,b){a.D=a;a.X=a.yb=536870916;a.T=null;a.P=[];b=He(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Zb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=Zb[c],a.j(c+" messages enabled"))}}function Ze(a,b){for(var c in Zb)if(16==Zb[c]){a.pa[c]=b;break}}l.kb=function(a){return df.indexOf(a.toUpperCase())};
|
||||
function Oe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,n=void 0,p=8,t="";p?32<p&&(p=32):p=32;for(var D=null==k||isNaN(k),da=n=n||p;0<p--;)da||(t=","+t,da=n),t=(D?"?":k&1?"1":"0")+t,k>>=1,da--;g=t+g;d>>=8}d=q(c,0,!0)+" "+c+". "+m(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Pe(a){var b=a.K;a.K={};return b}
|
||||
function Qe(a,b){if(b)return Oe(a,b,a.K[b]);var c=0;for(b in a.K)Oe(a,b,a.K[b]),c++;return 0<c}function J(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:a=m(b,0<c?(c+2)/3|0:0);break;case 10:a=ua(b,0<c?Math.ceil(.3*c):0);break;default:a=q(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Ne={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9},Ke=Math.pow(2,32);
|
||||
function Re(a){Ge.call(this,a);this.Ca=!1;this.Aa=18;this.fa=36;this.qa=["<",">"];this.oa=[];this.Ba=Y();this.L=Y(0);this.na=Y(0);this.ba=Y(0);this.F=[];this.b=this.M=this.I=[];Se(this);this.S=this.ia=0;this.i=[];this.xa=void 0;Te(this);this.D=this;this.ra={};this.X=this.yb=0;this.T=null;this.P=[];Ue(this,a.messages);this.za=a.commands;this.O=0;this.Ia=this.ya=null;this.C=this.Ea=this.Da=this.ha=this.sa=0;this.pa=this.ga=this.aa=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return cd(b,
|
||||
a)}):void 0===global[w]&&(global[w]=function(a){return cd(b,a)})}pa(Re,Ge);function Ve(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,Wa:void 0===b?!1:b,ja:!1,ca:c}}function We(a,b,c,d){a.B=b;a.Wa=c||!1;a.ja=!1;a.ca=d}function Xe(a){return[a.B,a.Wa,a.ja,a.ca,a.Za]}function Ye(a,b){var c=Y(b[0],b[1],b[2]);c.ja=b[3];b[4]&&(c.tb=He(a,c.Za=b[4]));return c}l=Re.prototype;
|
||||
l.Fa=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ga=a.u;this.Aa=b.F;(a=Yc(a,"messages"))&&Ue(this,a);Ze(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=Ve($e(d,c,d.na));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.j("..."):(c=p.type,n=Ic[c],p&&d.j(q(p.id,8)+" %"+q(e<<d.G.i,8)+" %"+q(p.B,8)+
|
||||
" "+q(p.Pa,4,!0)+" "+q(p.size,4,!0)+" "+n),c!=Mc&&(c=-1),n=0);a+=16384;e++}}});Kb(this)};
|
||||
l.ma=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",cd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.u.length-1&&(b=d.u[++d.w])):40==a.keyCode&&(0<d.w?b=d.u[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Wa(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";cd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Wa(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=qc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function bd(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.Ha=function(a,b){var c=-1,d=Ve(a);-1!==d&&(c=wc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.rb=function(a,b,c){var d=Ve(a);-1!==d&&(vc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),I(this.H,-1))};
|
||||
function $e(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){b=Le(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var g,f=b,h;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var f=f.toUpperCase(),k=0;k<a.F.length;k++){var n=a.F[k].U[f];if(null!=n){h=n.o;break}}null!=h&&(g=Y(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=X(a,b,void 0)}null!=f&&(f=af(f,a.Aa),We(c,f,d,e));return c}function bf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.tb=He(a,b.Za=c[2]))}
|
||||
function af(a,b){0>a&&a>=-B&&(a+=E);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function cf(a){return m(a/Rb,6)+" "+m(a%Rb,6)}
|
||||
function Ue(a,b){a.D=a;a.X=a.yb=536870916;a.T=null;a.P=[];b=He(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Zb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=Zb[c],a.j(c+" messages enabled"))}}function Ze(a,b){for(var c in Zb)if(16==Zb[c]){a.ra[c]=b;break}}l.kb=function(a){return df.indexOf(a.toUpperCase())};
|
||||
l.lb=function(a){var b,c=this.v;switch(a){case ef:b=c.i;break;case ff:b=c.K;break;case gf:b=c.b;break;case hf:b=c.u&65536?1:0;break;case jf:b=c.u&32768?1:0;break;case kf:b=c.u&131072?1:0;break;case lf:b=c.u&32?1:0;break;case mf:b=c.u&262144?1:0}return b};
|
||||
l.message=function(a,b){b&&(a+=" @"+J(this,Y(this.v.ya).B));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.P.push(a);else{var c;if(this.X&-2147483648&&this.v&&(c=this.v.A.N)||Lb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,kd(a),a.fa=0,a.H&&I(a.H,void 0))}};
|
||||
l.message=function(a,b){b&&(a+=" @"+J(this,Y(this.v.za).B));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.P.push(a);else{var c;if(this.X&-2147483648&&this.v&&(c=this.v.A.N)||Lb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,kd(a),a.ga=0,a.H&&I(a.H,void 0))}};
|
||||
function Te(a){var b;if(!qd(a))a.i&&a.i.length&&a.j("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(nf);for(b=0;b<a.i.length;b++)a.i[b]=Y();a.S=0;a.j("instruction history buffer allocated")}}function of(a,b,c){if(!pf(a,c))return!1;pc(a.v,b);return!0}
|
||||
function qc(a,b,c,d){if(!pf(a))return!1;var e="";null===c&&(e=(c=!a.xa||"tr"==a.xa)?"tr":"t");a.C=0;b||qd(a)&&rd(a,a.v.i,0);try{b=id(a.v,b);var f=a.v.Ra(b);0<f&&(rc(a.v,f),a.C+=f,sc(a.v,f,!0),tc(a.v,f),a.ga++)}catch(g){"number"!=typeof g&&(a.C=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.fa&&a.fa.stop(),I(a.H,-1));ad(a,c||!1,e);return 0<a.C}l.W=function(a){this.v&&this.v.W(a)};function ad(a,b,c){b=void 0===b?!0:b;a.Ba&&(c&&a.j(qf+c),We(a.L,a.v.i),b&&1!=a.O?rf(a):sf(a))}
|
||||
function pf(a,b){var c;(c=!a.v||!Jb(a.v))||(c=a.v,c.A.V?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.N?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Ib(a.v)}l.va=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ka=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Te(this);this.ga=0;this.T=null;this.C=0;We(this.L,this.v.i);this.A.N=!1;tf(this);a||ad(this)};
|
||||
l.save=function(){var a=new G(this);a.set(0,Xe(this.L));a.set(1,Xe(this.ma));a.set(2,Xe(this.ba));a.set(3,[this.u,this.R,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=Ye(this,a[b++]),this.ma=Ye(this,a[b++]),this.ba=Ye(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.j("running");this.A.N=!0;this.Ca=a;this.Da=b};
|
||||
l.stop=function(a,b){if(this.A.N){this.A.N=!1;this.C=b-this.Da;if(!this.O){b="stopped";if(this.C){a-=this.Ca;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";qd(this)&&(b+=this.ga+" instructions, ",this.ga=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}ad(this,!0);bd(this);tf(this,this.v.i);this.T=null}};function qd(a){return 1<a.b.length||!!a.ha}
|
||||
function rd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.ya==b&&(b=pd(a.v,1)));if(0<c&&(a.ha&&!--a.ha||Vc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ga++,0>d&&(d=a.v.f(b)),0<=d&&(We(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
|
||||
function uf(a,b,c,d){var e=Y(b.B),f=a.Ga(b,1),g,h,k,m=0,p=f/Vb|0,t;for(t in vf)if(g=vf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=wf;m=p&3;break;case 32256:k=xf;m=p&7;break;case 29248:k=yf,m=(p&48)>>2|(p&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>zf&&(k="B");k=Af[g||0]+k;if(g){if(28700==h)h=f/Wb&127,m=J(a,h,-1);else if(h=f>>23&15,m=J(a,h,-1),h)for(p=0;p<Bf.length;p++)g==Bf[p][0]&&(t=Bf[p][h])&&(k=Af[t],m="");k=Ca(k,8)+(m?m+",":"");f&4194304&&(k+="@");k+=J(a,f&262143,-1);(f=f>>18&15)&&(k+="("+J(a,f,-1)+")")}else k=
|
||||
Ca(k,8)+cf(f);f=k;g="";h=J(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ga(e,1),g+=" "+cf(k),null==e.B)break;while(e.B!=b.B)}h+=Ca(g,16)+f;c&&(h=Ca(h,48)+";"+(c||""),h=a.v.A.La?h+("cycles="+dd(a.v).toString()+" cs="+q(a.v.Aa)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function Cf(a,b,c,d){var e=-1,f,g;if(b){for(var h=b.toUpperCase(),k=0;k<Bf.length;k++)for(var m in Bf[k])if(+m&&(g=Bf[k][m],h==Af[g])){h=Af[Bf[k][0]];c&&(c=J(a,+m)+","+c);break}for(var p in vf){f=+p;m=vf[p];switch(f){case 32512:k=wf;break;case 32256:k=xf;break;case 29248:k=yf;break;default:k=[""]}for(var t in m){g=m[t];for(var D=0;D<k.length;D++){var da=k[D];"S"==da&&g>zf&&(da="B");if(h==Af[g]+da){e=29248!=f?D:(D&3)<<1|(D&12)<<2;e=(t|e<<6)*Vb;break}}if(0<=e)break}if(0<=e)break}}else c&&(e=f=0);if(0<=
|
||||
function qc(a,b,c,d){if(!pf(a))return!1;var e="";null===c&&(e=(c=!a.ya||"tr"==a.ya)?"tr":"t");a.C=0;b||qd(a)&&rd(a,a.v.i,0);try{b=id(a.v,b);var f=a.v.Ra(b);0<f&&(rc(a.v,f),a.C+=f,sc(a.v,f,!0),tc(a.v,f),a.ha++)}catch(g){"number"!=typeof g&&(a.C=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.ga&&a.ga.stop(),I(a.H,-1));ad(a,c||!1,e);return 0<a.C}l.W=function(a){this.v&&this.v.W(a)};function ad(a,b,c){b=void 0===b?!0:b;a.Ca&&(c&&a.j(qf+c),We(a.L,a.v.i),b&&1!=a.O?rf(a):sf(a))}
|
||||
function pf(a,b){var c;(c=!a.v||!Jb(a.v))||(c=a.v,c.A.V?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.N?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Ib(a.v)}l.wa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.la=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Te(this);this.ha=0;this.T=null;this.C=0;We(this.L,this.v.i);this.A.N=!1;tf(this);a||ad(this)};
|
||||
l.save=function(){var a=new G(this);a.set(0,Xe(this.L));a.set(1,Xe(this.na));a.set(2,Xe(this.ba));a.set(3,[this.u,this.R,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=Ye(this,a[b++]),this.na=Ye(this,a[b++]),this.ba=Ye(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.O||this.j("running");this.A.N=!0;this.Da=a;this.Ea=b};
|
||||
l.stop=function(a,b){if(this.A.N){this.A.N=!1;this.C=b-this.Ea;if(!this.O){b="stopped";if(this.C){a-=this.Da;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";qd(this)&&(b+=this.ha+" instructions, ",this.ha=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}ad(this,!0);bd(this);tf(this,this.v.i);this.T=null}};function qd(a){return 1<a.b.length||!!a.ia}
|
||||
function rd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.za==b&&(b=pd(a.v,1)));if(0<c&&(a.ia&&!--a.ia||Vc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ha++,0>d&&(d=a.v.f(b)),0<=d&&(We(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
|
||||
function uf(a,b,c,d){var e=Y(b.B),f=a.Ha(b,1),g,h,k,n=0,p=f/Vb|0,t;for(t in vf)if(g=vf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=wf;n=p&3;break;case 32256:k=xf;n=p&7;break;case 29248:k=yf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>zf&&(k="B");k=Af[g||0]+k;if(g){if(28700==h)h=f/Wb&127,n=J(a,h,-1);else if(h=f>>23&15,n=J(a,h,-1),h)for(p=0;p<Bf.length;p++)g==Bf[p][0]&&(t=Bf[p][h])&&(k=Af[t],n="");k=Ca(k,8)+(n?n+",":"");f&4194304&&(k+="@");k+=J(a,f&262143,-1);(f=f>>18&15)&&(k+="("+J(a,f,-1)+")")}else k=
|
||||
Ca(k,8)+cf(f);f=k;g="";h=J(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ha(e,1),g+=" "+cf(k),null==e.B)break;while(e.B!=b.B)}h+=Ca(g,16)+f;c&&(h=Ca(h,48)+";"+(c||""),h=a.v.A.La?h+("cycles="+dd(a.v).toString()+" cs="+q(a.v.Ba)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function Cf(a,b,c,d){var e=-1,f,g;if(b){for(var h=b.toUpperCase(),k=0;k<Bf.length;k++)for(var n in Bf[k])if(+n&&(g=Bf[k][n],h==Af[g])){h=Af[Bf[k][0]];c&&(c=J(a,+n)+","+c);break}for(var p in vf){f=+p;n=vf[p];switch(f){case 32512:k=wf;break;case 32256:k=xf;break;case 29248:k=yf;break;default:k=[""]}for(var t in n){g=n[t];for(var D=0;D<k.length;D++){var da=k[D];"S"==da&&g>zf&&(da="B");if(h==Af[g]+da){e=29248!=f?D:(D&3)<<1|(D&12)<<2;e=(t|e<<6)*Vb;break}}if(0<=e)break}if(0<=e)break}}else c&&(e=f=0);if(0<=
|
||||
e&&c)for(h=c.split(","),p=0;p<h.length;p++)if(g=h[p].trim()){if(1<p){a.j("too many operands: "+g);e=-1;break}t=g.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!t){a.j("unknown operand: "+g);e=-1;break}g=t[2];if(p||1==h.length)g=g?g.replace(/(^|[^0-9])\./g,"$1"+J(a,d)):"0";g=X(a,g);if(void 0==g){e=-1;break}if(!p&&1<h.length)if(28700==f){if(0>g||127<g)g&=127;e+=g*Wb}else{if(0>g||15<g)g&=15;e+=g<<23}else{if(0>g||262143<g)g&=Qb;e+=g;if(g=t[3]){g=X(a,g);if(void 0==g){e=-1;break}if(0>g||15<g)g&=15;e+=g<<18}t[1]&&
|
||||
(e+=4194304)}}0>e&&null!=c&&a.j("unknown instruction: "+b+" "+c);return e}function Se(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Ve(c);var d=a.G;Uc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Ve(c),d=a.G,Uc(d.b[c>>>d.i],!0);a.I=["bw"];a.ra=0;a.ha=0}
|
||||
l.Ja=function(a,b,c){var d=!0;c||eg(this,a,b,!1,!0);if(a!=this.b){var e=Ve(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ja(e&16383,a==this.I)}}d&&(a.push(b),c?b.ia=!0:(gg(this,a,a.length-1,"set"),Te(this)));return d};function eg(a,b,c,d,e){var f=!1;c=Ve(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Ve(h)&&(!d||h.ia)){f=!0;h.ia||e||gg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Uc(d.b[c>>>d.i],b==a.I));h.ia||Te(a);break}}return f}
|
||||
function hg(a,b){for(var c=1;c<b.length;c++)gg(a,b,c);return b.length-1}function gg(a,b,c,d){c=b[c];a.j(b[0]+" "+J(a,c.B)+(d?" "+d:c.Za?' "'+c.Za+'"':""))}function tf(a,b){if(void 0!==b)Vc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ia){if(!eg(a,a.b,c,!0))break;b=0}}}
|
||||
function Vc(a,b,c,d,e){var f=!1;if(!a.ra++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ia)for(var k=Ve(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.ia&&(eg(a,d,h,!0),e=!0);if(p=h.tb){for(var f=!1,t=0;t<p.length;t++)if(!ig(a,p[t],!0)){if(p[t].indexOf("if")){f=!0;break}for(var D=t+1;D<p.length&&p[D].indexOf("else");D++)t++;if(D==p.length){f=!0;break}}a.v.A.N||(f=!0)}if(f){e||gg(a,d,g,"hit");break}}}a.ra--;return f}
|
||||
function jg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=n(d,2);We(e.Aa,d);f+="="+J(e,e.Ga(e.Aa),36)+" ";c+=f}if(b){b="";for(d=0;d<df.length;d++)(e=df[d]||"")&&(e+="="+J(a,a.lb(d),d>=hf?1:d==ff?23:18)+" "),b+=e;c+="\n"+b}return c}l.zb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Ae(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],t=Ea(p,k,a.zb);0>t&&p.splice(-(t+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({sd:b,B:c,Ob:d,U:e,ub:f})}function kg(a,b,c){var d=[],e=Ve(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Ob;if(e>=g&&e<g+h){e=Ea(f.ub,[e-g],a.zb);0<=e?lg(a,b,e,d):c&&(e=~e,lg(a,b,e-1,d),lg(a,b,e,d));break}}return d}
|
||||
(e+=4194304)}}0>e&&null!=c&&a.j("unknown instruction: "+b+" "+c);return e}function Se(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Ve(c);var d=a.G;Uc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Ve(c),d=a.G,Uc(d.b[c>>>d.i],!0);a.I=["bw"];a.sa=0;a.ia=0}
|
||||
l.Ka=function(a,b,c){var d=!0;c||eg(this,a,b,!1,!0);if(a!=this.b){var e=Ve(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ka(e&16383,a==this.I)}}d&&(a.push(b),c?b.ja=!0:(gg(this,a,a.length-1,"set"),Te(this)));return d};function eg(a,b,c,d,e){var f=!1;c=Ve(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Ve(h)&&(!d||h.ja)){f=!0;h.ja||e||gg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Uc(d.b[c>>>d.i],b==a.I));h.ja||Te(a);break}}return f}
|
||||
function hg(a,b){for(var c=1;c<b.length;c++)gg(a,b,c);return b.length-1}function gg(a,b,c,d){c=b[c];a.j(b[0]+" "+J(a,c.B)+(d?" "+d:c.Za?' "'+c.Za+'"':""))}function tf(a,b){if(void 0!==b)Vc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ja){if(!eg(a,a.b,c,!0))break;b=0}}}
|
||||
function Vc(a,b,c,d,e){var f=!1;if(!a.sa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ja)for(var k=Ve(h)&(d==a.b?65535:-1),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.ja&&(eg(a,d,h,!0),e=!0);if(p=h.tb){for(var f=!1,t=0;t<p.length;t++)if(!ig(a,p[t],!0)){if(p[t].indexOf("if")){f=!0;break}for(var D=t+1;D<p.length&&p[D].indexOf("else");D++)t++;if(D==p.length){f=!0;break}}a.v.A.N||(f=!0)}if(f){e||gg(a,d,g,"hit");break}}}a.sa--;return f}
|
||||
function jg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=m(d,2);We(e.Ba,d);f+="="+J(e,e.Ha(e.Ba),36)+" ";c+=f}if(b){b="";for(d=0;d<df.length;d++)(e=df[d]||"")&&(e+="="+J(a,a.lb(d),d>=hf?1:d==ff?23:18)+" "),b+=e;c+="\n"+b}return c}l.zb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Ae(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,n=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],t=Ea(p,k,a.zb);0>t&&p.splice(-(t+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({sd:b,B:c,Ob:d,U:e,ub:f})}function kg(a,b,c){var d=[],e=Ve(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Ob;if(e>=g&&e<g+h){e=Ea(f.ub,[e-g],a.zb);0<=e?lg(a,b,e,d):c&&(e=~e,lg(a,b,e-1,d),lg(a,b,e,d));break}}return d}
|
||||
function mg(a,b){var c=a.G;b.forEach(function(a,b){vc(c,b,a)})}function lg(a,b,c,d){var e={},f=a.F[b].ub,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function ng(a,b){var c=$e(a,b[1],a.ba);if(c){var d=b[2];void 0==d?(a.j("begin assemble at "+J(a,c.B)),a.R=!0,I(a.H)):"/"==d[0]||0<=d.indexOf(":")?a.qa?a.j("assembly already in progress"):a.qa=new og(d,c.B,a,function(b,c,d){d?a.j("error assembling "+c+": ("+d+")"):mg(a,b.w);a.qa=null}):(b.shift(),b.shift(),b.shift(),b=Cf(a,d,b.join(""),c.B||0),0<=b&&(a.rb(c,b),a.j(uf(a,c))))}}
|
||||
function ng(a,b){var c=$e(a,b[1],a.ba);if(c){var d=b[2];if(void 0==d)a.j("begin assemble at "+J(a,c.B)),a.R=!0,I(a.H);else{var e=d.match(/^(['"]?)((\/|http:).*)\1$/);e?a.pa?a.j("assembly already in progress"):a.pa=new og(e[2],c.B,"",a,function(b,c){b?a.j("error ("+b+") processing "+c):mg(a,a.pa.w);a.pa=null}):(b.shift(),b.shift(),b.shift(),b=Cf(a,d,b.join(""),c.B||0),0<=b&&(a.rb(c,b),a.j(uf(a,c))))}}}
|
||||
function pg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Qe(a)||a.j("no variables"),!0;if(!c[2])return Qe(a,c[1]);if(!c[3])return delete a.K[c[1]],!0;b=X(a,c[3]);return void 0!==b?(a.K[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
|
||||
function qg(a,b,c){var d=null;if(b=$e(a,b)){var e=kg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
|
||||
function rf(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trm\tdump misc registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}g=X(a,b);if(void 0===g)return;b=a.kb(f);if(0>b){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case ef:H(h,
|
||||
g);We(a.L,h.i);break;case hf:f=65536;break;case jf:f=32768;break;case kf:f=131072;break;case lf:f=32;break;case mf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);I(a.H);a.j("updated registers:")}}a.j(jg(a,e));c&&(We(a.L,d.i),sf(a,J(a,a.L.B)))}}function rg(a,b){b=Da(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Oe(a,null,c[2].charCodeAt(0)):X(a,b,!0)}
|
||||
function sg(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Me(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.xa=b;Va(c,function(){return Mb(a,!0)&&qc(a,e,d,!1)},function(){a.fa&&a.fa.stop();I(a.H,-1);Mb(a,!1)})}}
|
||||
function sf(a,b,c,d){if(b=$e(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Me(a,c.substr(1)),null!=c&&(d=c);else{d=$e(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Lb(a,!1)||a.O?a.C:null,g=null!=f?"cycles":null,h=kg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.j(m)}h[3]&&(g=h[3],f=null);h=a.ba;m=b;h.B=m.B;h.Wa=m.Wa;h.ia=m.ia;h.ca=m.ca;a.j(uf(a,b,g,f));e-=b.B-k;c++}}}
|
||||
function ig(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(qf+b):(a.R&&(a.j("ended assemble at "+J(a,a.ba.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Jb(a)&&0<b.length){a.R&&(b="a "+J(a,a.ba.B)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var p=h.charAt(m);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":ng(a,g);
|
||||
break;case "b":a:{var t=g[0],D=g[1],da=b;if("?"==D)a.j("breakpoint commands:"),a.j("\tbp #\tset exec breakpoint"),a.j("\tbr #\tset read breakpoint"),a.j("\tbw #\tset write breakpoint"),a.j("\tbc #\tclear breakpoint (* to clear all)"),a.j("\tbl\tlist all breakpoints"),a.j("\tbn [#]\tbreak after # instruction(s)");else{var Ha=t.charAt(1);if("l"==Ha){var Bd;Bd=0+hg(a,a.b);Bd+=hg(a,a.M);(Bd+=hg(a,a.I))||a.j("no breakpoints")}else if("n"==Ha){var Df=+D||0;D&&(a.ha=Df);a.j("break after "+Df+" instruction(s)")}else if(void 0===
|
||||
D)a.j("missing breakpoint address");else{var Z=Y();if("*"!=D&&(Z=$e(a,D,a.L),!Z))break a;"c"==Ha?null==Z.B?(Se(a),a.j("all breakpoints cleared")):eg(a,a.b,Z)||eg(a,a.M,Z)||eg(a,a.I,Z)||a.j("breakpoint missing: "+J(a,Z.B)):null!=Z.B&&(bf(a,Z,da),"p"==Ha?a.Ja(a.b,Z):"r"==Ha?a.Ja(a.M,Z):"w"==Ha?a.Ja(a.I,Z):a.j("unknown breakpoint command: "+Ha))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var $a,ab=g[0],la=g[1],xa=g[2],jh=g[3];if("?"==la){var bb="";for($a in Zb)a.pa[$a]&&(bb&&(bb+=","),
|
||||
bb+=$a);bb+=",state,symbols";a.j("dump memory commands:");a.j("\tdw [a] [n] dump n words at address a");a.j("\tds [a] [n] dump n words at address a as JSON");a.j("\tdh [p] [n] dump n instructions from history position p");bb.length&&a.j("dump extension commands:\n\t"+bb)}else if("state"==la){var Cd=tg(a.H,!0);"console"==xa?console.log(Cd):(a.ua&&(a.ua.value=""),Cd&&a.j(Cd))}else if("symbols"==la)for(var Dd=0;Dd<a.F.length;Dd++){var Ed=a.F[Dd],cb;for(cb in Ed.U)if("."!=cb.charAt(0)){var Ef=
|
||||
Ed.U[cb].o;if(void 0!==Ef){var Ff=Ed.U[cb].l;Ff&&(cb=Ff);a.j(J(a,Ef)+" "+cb)}}}else{if("d"==ab){for($a in Zb)if(g[1]==$a){var Gf=a.pa[$a];Gf?(g.shift(),g.shift(),Gf(g)):a.j("no dump registered for "+la);break a}la||(ab=a.Ha||"dw")}else a.Ha=ab;if("dh"==ab){var Hf=la,If=xa,Jf="",Kf=0,ia=a.S,ma=a.i;if(ma.length){var ea=+Hf||a.wa,zb=+If||10;isNaN(ea)?ea=zb:Jf="more ";ea>ma.length&&(a.j("note: only "+ma.length+" available"),ea=ma.length);ia-=ea;0>ia&&(null==ma[ma.length-1].B?(ea=ia+ea,ia=0):ia+=ma.length);
|
||||
var Fd=[];"call"==If&&(zb=1E5,Fd=["CALL"]);for(void 0!==Hf&&a.j(ea+" instructions earlier:");0<zb&&ia!=a.S;){var Lf=ma[ia++];if(null==Lf.B)break;var Ab=Y(Lf.B),kh=ea--,Mf=uf(a,Ab,"history",kh);(!Fd.length||0<=Mf.indexOf(Fd[0]))&&a.j(Mf);Ab.ib&&(ia+=Ab.ib,zb-=Ab.ib,ea-=Ab.ib);ia>=ma.length&&(ia=0);a.wa=ea;Kf++;zb--}}Kf||(a.j("no "+Jf+"history available"),a.wa=void 0)}else{var db=$e(a,la,a.ma);if(db){var Ia=0,Nf="ds"==ab;if(xa){if("l"==xa.charAt(0))xa=xa.substr(1)||jh,Ia=Me(a,xa);else{var Of=$e(a,xa);
|
||||
Of&&(Ia=Of.B-db.B)}0>Ia&&(Ia=0);65536<Ia&&(Ia=65536)}var lh=a.ca;db.ca&&(a.ca=db.ca);for(var Pf="db"==ab?1:2,Gd=Ia||32,Hd=1==Pf?2:4,mh=(Gd+Hd-1)/Hd|0||1,Ja="";mh--&&0<Gd;){for(var Ka="",Id="",la=J(a,db.B),Qf=Hd;0<Qf--&&0<Gd--;){var Jd=a.Ga(db,1);Nf?(Ka&&(Ka+=","),Ka+=Jd):(Ka+=cf(Jd),Ka+=" ");for(var zc=29,nh=0;1==Pf&&0<=zc;nh++)var Rf=Jd/Math.pow(2,zc)%Math.pow(2,7)+0,Id=Id+(32>Rf?".":String.fromCharCode(Rf)),zc=zc-7}Ja&&(Ja+="\n");Ja=Nf?Ja+(Ka+","):Ja+(la+": "+Ka+(0>Qf?" "+Id:""))}Ja&&a.j(Ja);a.ca=
|
||||
lh}}}}break;case "e":if("else"==g[0])break;var Sf,Tf,Uf=g[0],Kd=g[1];"e"==Uf||"ew"==Uf?(Sf=a.Ga,Tf=a.rb):Kd=null;if(null==Kd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var Ac=$e(a,Kd,a.ma);if(Ac)for(var Ld=2;Ld<g.length;Ld++){var Bb=X(a,g[Ld]);if(void 0===Bb)break;Bb=af(Bb);a.j("changing "+J(a,Ac.B)+" from "+cf(Sf.call(a,Ac))+" to "+cf(Bb));Tf.call(a,Ac,Bb,1)}}break;case "g":a:{var Vf=g[1],oh=b;if(void 0!==Vf){var Md=$e(a,Vf);if(!Md)break a;bf(a,Md,oh);a.Ja(a.b,
|
||||
Md,!0)}of(a,!0,c)}break;case "h":a.A.N?(c||a.j("halting"),a.W()):Lb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Nd;var Cb=b.substr(2),Cb=Da(Cb);X(a,Cb)?(c||a.j("true: "+Cb),Nd=!0):(c||a.j("false: "+Cb),Nd=!1);Nd||(d=!1);break}f=!0;break;case "k":var ph=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Od=0,Pd=Y(),Db=Y();for(a.j("stack trace for "+J(a,Db.B));10>Od;){for(var La=null,qh=256;65536>Db.B>>>
|
||||
0;){Pd.B=a.Ga(Db,2);if(null==Db.B||!qh--)break;if(!(Pd.B&1)){for(var rh=a,Bc=Pd,Wf=null,Eb=Bc.B,Xf=Eb,Qd=1;6>=Qd&&Eb;Qd++){if(2<Qd){Bc.B=Eb;var Cc=uf(rh,Bc);if(0<=Cc.indexOf("JSR")){var Yf=Cc.indexOf(" ");if(Eb+(Cc.indexOf(" ",Yf+1)-Yf-1)/2==Xf){Wf=Cc;break}}}Eb-=2}Bc.B=Xf;if(La=Wf)break}}if(!La||null==La)break;var Zf=null;if("ks"==ph){var $f=La.match(/[0-9A-F]+$/);$f&&(Zf=qg(a,$f[0]))}La=Ca(La,50)+" ;"+(Zf||"stack="+J(a,Db.B));a.j(La);Od++}Od||a.j("no return addresses found")}break;case "l":if("ln"==
|
||||
function sg(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Me(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ya=b;Va(c,function(){return Mb(a,!0)&&qc(a,e,d,!1)},function(){a.ga&&a.ga.stop();I(a.H,-1);Mb(a,!1)})}}
|
||||
function sf(a,b,c,d){if(b=$e(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Me(a,c.substr(1)),null!=c&&(d=c);else{d=$e(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Lb(a,!1)||a.O?a.C:null,g=null!=f?"cycles":null,h=kg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.j(n)}h[3]&&(g=h[3],f=null);h=a.ba;n=b;h.B=n.B;h.Wa=n.Wa;h.ja=n.ja;h.ca=n.ca;a.j(uf(a,b,g,f));e-=b.B-k;c++}}}
|
||||
function ig(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(qf+b):(a.R&&(a.j("ended assemble at "+J(a,a.ba.B)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Jb(a)&&0<b.length){a.R&&(b="a "+J(a,a.ba.B)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),n=1;n<h.length;n++){var p=h.charAt(n);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(n);g.unshift(h.substr(0,n));break}}switch(g[0].charAt(0)){case "a":ng(a,g);
|
||||
break;case "b":a:{var t=g[0],D=g[1],da=b;if("?"==D)a.j("breakpoint commands:"),a.j("\tbp #\tset exec breakpoint"),a.j("\tbr #\tset read breakpoint"),a.j("\tbw #\tset write breakpoint"),a.j("\tbc #\tclear breakpoint (* to clear all)"),a.j("\tbl\tlist all breakpoints"),a.j("\tbn [#]\tbreak after # instruction(s)");else{var Ha=t.charAt(1);if("l"==Ha){var Bd;Bd=0+hg(a,a.b);Bd+=hg(a,a.M);(Bd+=hg(a,a.I))||a.j("no breakpoints")}else if("n"==Ha){var Df=+D||0;D&&(a.ia=Df);a.j("break after "+Df+" instruction(s)")}else if(void 0===
|
||||
D)a.j("missing breakpoint address");else{var Z=Y();if("*"!=D&&(Z=$e(a,D,a.L),!Z))break a;"c"==Ha?null==Z.B?(Se(a),a.j("all breakpoints cleared")):eg(a,a.b,Z)||eg(a,a.M,Z)||eg(a,a.I,Z)||a.j("breakpoint missing: "+J(a,Z.B)):null!=Z.B&&(bf(a,Z,da),"p"==Ha?a.Ka(a.b,Z):"r"==Ha?a.Ka(a.M,Z):"w"==Ha?a.Ka(a.I,Z):a.j("unknown breakpoint command: "+Ha))}}}break;case "c":a.va&&(a.va.value="");break;case "d":a:{var $a,ab=g[0],la=g[1],xa=g[2],kh=g[3];if("?"==la){var bb="";for($a in Zb)a.ra[$a]&&(bb&&(bb+=","),
|
||||
bb+=$a);bb+=",state,symbols";a.j("dump memory commands:");a.j("\tdw [a] [n] dump n words at address a");a.j("\tds [a] [n] dump n words at address a as JSON");a.j("\tdh [p] [n] dump n instructions from history position p");bb.length&&a.j("dump extension commands:\n\t"+bb)}else if("state"==la){var Cd=tg(a.H,!0);"console"==xa?console.log(Cd):(a.va&&(a.va.value=""),Cd&&a.j(Cd))}else if("symbols"==la)for(var Dd=0;Dd<a.F.length;Dd++){var Ed=a.F[Dd],cb;for(cb in Ed.U)if("."!=cb.charAt(0)){var Ef=
|
||||
Ed.U[cb].o;if(void 0!==Ef){var Ff=Ed.U[cb].l;Ff&&(cb=Ff);a.j(J(a,Ef)+" "+cb)}}}else{if("d"==ab){for($a in Zb)if(g[1]==$a){var Gf=a.ra[$a];Gf?(g.shift(),g.shift(),Gf(g)):a.j("no dump registered for "+la);break a}la||(ab=a.Ia||"dw")}else a.Ia=ab;if("dh"==ab){var Hf=la,If=xa,Jf="",Kf=0,ia=a.S,ma=a.i;if(ma.length){var ea=+Hf||a.xa,zb=+If||10;isNaN(ea)?ea=zb:Jf="more ";ea>ma.length&&(a.j("note: only "+ma.length+" available"),ea=ma.length);ia-=ea;0>ia&&(null==ma[ma.length-1].B?(ea=ia+ea,ia=0):ia+=ma.length);
|
||||
var Fd=[];"call"==If&&(zb=1E5,Fd=["CALL"]);for(void 0!==Hf&&a.j(ea+" instructions earlier:");0<zb&&ia!=a.S;){var Lf=ma[ia++];if(null==Lf.B)break;var Ab=Y(Lf.B),lh=ea--,Mf=uf(a,Ab,"history",lh);(!Fd.length||0<=Mf.indexOf(Fd[0]))&&a.j(Mf);Ab.ib&&(ia+=Ab.ib,zb-=Ab.ib,ea-=Ab.ib);ia>=ma.length&&(ia=0);a.xa=ea;Kf++;zb--}}Kf||(a.j("no "+Jf+"history available"),a.xa=void 0)}else{var db=$e(a,la,a.na);if(db){var Ia=0,Nf="ds"==ab;if(xa){if("l"==xa.charAt(0))xa=xa.substr(1)||kh,Ia=Me(a,xa);else{var Of=$e(a,xa);
|
||||
Of&&(Ia=Of.B-db.B)}0>Ia&&(Ia=0);65536<Ia&&(Ia=65536)}var mh=a.ca;db.ca&&(a.ca=db.ca);for(var Pf="db"==ab?1:2,Gd=Ia||32,Hd=1==Pf?2:4,nh=(Gd+Hd-1)/Hd|0||1,Ja="";nh--&&0<Gd;){for(var Ka="",Id="",la=J(a,db.B),Qf=Hd;0<Qf--&&0<Gd--;){var Jd=a.Ha(db,1);Nf?(Ka&&(Ka+=","),Ka+=Jd):(Ka+=cf(Jd),Ka+=" ");for(var zc=29,oh=0;1==Pf&&0<=zc;oh++)var Rf=Jd/Math.pow(2,zc)%Math.pow(2,7)+0,Id=Id+(32>Rf?".":String.fromCharCode(Rf)),zc=zc-7}Ja&&(Ja+="\n");Ja=Nf?Ja+(Ka+","):Ja+(la+": "+Ka+(0>Qf?" "+Id:""))}Ja&&a.j(Ja);a.ca=
|
||||
mh}}}}break;case "e":if("else"==g[0])break;var Sf,Tf,Uf=g[0],Kd=g[1];"e"==Uf||"ew"==Uf?(Sf=a.Ha,Tf=a.rb):Kd=null;if(null==Kd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var Ac=$e(a,Kd,a.na);if(Ac)for(var Ld=2;Ld<g.length;Ld++){var Bb=X(a,g[Ld]);if(void 0===Bb)break;Bb=af(Bb);a.j("changing "+J(a,Ac.B)+" from "+cf(Sf.call(a,Ac))+" to "+cf(Bb));Tf.call(a,Ac,Bb,1)}}break;case "g":a:{var Vf=g[1],ph=b;if(void 0!==Vf){var Md=$e(a,Vf);if(!Md)break a;bf(a,Md,ph);a.Ka(a.b,
|
||||
Md,!0)}of(a,!0,c)}break;case "h":a.A.N?(c||a.j("halting"),a.W()):Lb(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var Nd;var Cb=b.substr(2),Cb=Da(Cb);X(a,Cb)?(c||a.j("true: "+Cb),Nd=!0):(c||a.j("false: "+Cb),Nd=!1);Nd||(d=!1);break}f=!0;break;case "k":var qh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Od=0,Pd=Y(),Db=Y();for(a.j("stack trace for "+J(a,Db.B));10>Od;){for(var La=null,rh=256;65536>Db.B>>>
|
||||
0;){Pd.B=a.Ha(Db,2);if(null==Db.B||!rh--)break;if(!(Pd.B&1)){for(var sh=a,Bc=Pd,Wf=null,Eb=Bc.B,Xf=Eb,Qd=1;6>=Qd&&Eb;Qd++){if(2<Qd){Bc.B=Eb;var Cc=uf(sh,Bc);if(0<=Cc.indexOf("JSR")){var Yf=Cc.indexOf(" ");if(Eb+(Cc.indexOf(" ",Yf+1)-Yf-1)/2==Xf){Wf=Cc;break}}}Eb-=2}Bc.B=Xf;if(La=Wf)break}}if(!La||null==La)break;var Zf=null;if("ks"==qh){var $f=La.match(/[0-9A-F]+$/);$f&&(Zf=qg(a,$f[0]))}La=Ca(La,50)+" ;"+(Zf||"stack="+J(a,Db.B));a.j(La);Od++}Od||a.j("no return addresses found")}break;case "l":if("ln"==
|
||||
g[0]){qg(a,g[1],!0);break}f=!0;break;case "m":a:{var na,oa=null,L=g[1];"?"==L&&(L=void 0);if(void 0!==L){var ya=0;if("all"==L)ya=1879046143,L=null;else if("on"==L)oa=!0,L=null;else if("off"==L)oa=!1,L=null;else{"keys"==L&&(L="key");"kbd"==L&&(L="keyboard");for(na in Zb)if(L==na){ya=Zb[na];oa=!!(a.X&ya);break}if(!ya){a.j("unknown message category: "+L);break a}}if(ya)if("on"==g[2])a.X|=ya,oa=!0;else if("off"==g[2]&&(a.X&=~ya,oa=!1,1073741824==ya)){for(var ag=1E3<=a.P.length?a.P.length-1E3:0;ag<a.P.length;)a.j(a.P[ag++]);
|
||||
a.P=[]}}var sh=0,Fb="";for(na in Zb)if(!L||L==na){var th=!!(a.X&Zb[na]);if(null===oa||oa==th)Fb&&(Fb+=","),++sh%10||(Fb+="\n\t"),"key"==na&&(na="keys"),Fb+=na}void 0===L&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==oa?oa?"messages on: ":"messages off: ":"message categories:\n\t")+(Fb||"none"));Te(a)}break;case "p":if("print"==g[0]){rg(a,b.substr(5));break}var bg=g[0],cg="p"==bg?0:"pr"==bg?1:-1;if("?"==g[1]||0>cg)a.j("step commands:"),a.j("\tp\tstep over instruction"),
|
||||
a.j("\tpr\tstep over instruction with register update");else if(a.O)a.j("step in progress");else{var dg=Y(a.v.i);a.Ga(dg);a.O?(a.Ja(a.b,dg,!0),of(a)||(a.H&&hd(a.H),a.O=0)):sg(a,cg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}rf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Gb=+g[2];if(8==Gb||10==Gb||16==Gb)a.ca=Gb;else{a.j("invalid base: "+Gb);break}}a.j("default base: "+a.ca);break;case "cs":var Hb;void 0!==g[3]&&(Hb=+g[3]);switch(g[2]){case "int":a.v.ma=Hb;break;
|
||||
case "start":a.v.Ba=Hb;break;case "stop":a.v.na=Hb;break;default:a.j("unknown cs option");break a}void 0!==Hb&&$c(a.v);a.j("checksums "+(a.v.A.La?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ed(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.ba.toFixed(2)+"Mhz")+" ("+a.v.ea+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),
|
||||
a.P=[]}}var th=0,Fb="";for(na in Zb)if(!L||L==na){var uh=!!(a.X&Zb[na]);if(null===oa||oa==uh)Fb&&(Fb+=","),++th%10||(Fb+="\n\t"),"key"==na&&(na="keys"),Fb+=na}void 0===L&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==oa?oa?"messages on: ":"messages off: ":"message categories:\n\t")+(Fb||"none"));Te(a)}break;case "p":if("print"==g[0]){rg(a,b.substr(5));break}var bg=g[0],cg="p"==bg?0:"pr"==bg?1:-1;if("?"==g[1]||0>cg)a.j("step commands:"),a.j("\tp\tstep over instruction"),
|
||||
a.j("\tpr\tstep over instruction with register update");else if(a.O)a.j("step in progress");else{var dg=Y(a.v.i);a.Ha(dg);a.O?(a.Ka(a.b,dg,!0),of(a)||(a.H&&hd(a.H),a.O=0)):sg(a,cg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}rf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Gb=+g[2];if(8==Gb||10==Gb||16==Gb)a.ca=Gb;else{a.j("invalid base: "+Gb);break}}a.j("default base: "+a.ca);break;case "cs":var Hb;void 0!==g[3]&&(Hb=+g[3]);switch(g[2]){case "int":a.v.na=Hb;break;
|
||||
case "start":a.v.Ca=Hb;break;case "stop":a.v.oa=Hb;break;default:a.j("unknown cs option");break a}void 0!==Hb&&$c(a.v);a.j("checksums "+(a.v.A.La?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ed(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.ba.toFixed(2)+"Mhz")+" ("+a.v.fa+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),
|
||||
a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":sg(a,g[0],g[1]);break;case "u":sf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){pg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Pb||"PDP10")+" version 1.34.2 ("+a.v.wb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){rg(a,b.substr(1));break}var Rd="commands:",Sd;for(Sd in ug)Rd+="\n"+
|
||||
Ca(Sd,9)+ug[Sd];qd(a)||(Rd+="\nnote: history disabled if no exec breakpoints");a.j(Rd);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(fg){a.j("Debugger "+(fg.stack||fg.message)),d=!1}return d}function cd(a,b,c){b=He(a,b,c);for(var d in b)if(!ig(a,b[+d]))return!1;return!0}
|
||||
var ug={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},zf=20,Af=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
|
||||
ef=0,ff=1,gf=2,hf=3,jf=4,kf=5,lf=6,mf=7,df="PC RA EA C0 C1 OV ND PD".split(" "),vg={},vf=(vg[28672]={0:101},vg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},vg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:zf,9216:53,9472:52,
|
||||
9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},vg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},vg[29248]={24576:79,24640:80,25088:81,25152:82},vg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
|
||||
28692:98,28696:99,28700:100},vg),wf=["","I","M","S"],xf=" L E LE A GE N G".split(" "),yf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Bf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],nf=1E3,qf=">> ";Ya(function(){for(var a=x(document,w,"debugger"),b=0;b<a.length;b++){var c=a[b],d=v(c),d=new Re(d);sb(d,c)}});
|
||||
function og(a,b,c,d){this.M=b||0;this.i=c;this.done=d;this.j=c.j;this.v={};this.L={};this.G=[];this.I=[];this.w=[];this.K=this.ja=0;this.Fa=this.M;this.F=null;this.b=0;this.C=null;this.J=this.H="";this.u=null;this.D="";var e=this;Ga(a,null,!0,function(a,b,c){c||(c=wg(e,a,b));e.done(e,a,c)})}
|
||||
function wg(a,b,c){var d=Pe(a.i);try{var e=c;if(za(b,".html")){var e="",f;for(b=/<pre>([\s\S]*?)<\/pre>/gi;f=b.exec(c);){var g=f[1];0<=g.indexOf("&")&&(g=g.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&"));e+=g}(f=e.match(/&[a-z]+;/i))&&xg(a,"unrecognized HTML entity: "+f[0])}var h,k=e.split(/\r?\n/);for(h=0;h<k.length&&(a.ja++,yg(a,k[h]+"\r\n"));h++);a.b&&a.error("open block from line "+a.v[a.C].ja);for(h=0;h<a.G.length;h++){var m=a.G[h],p=a.v[m];p?zg(a,p.Ka):a.error("missing definition for literal: "+
|
||||
m)}a.I.forEach(function(b){var c,d=b.Ma[0];c=b.Ma[1];var e=b.Fa;1==b.Ma.length&&(0<=d.indexOf("@")||0<=d.indexOf("("))&&(c=d,d="");null!=c?(c=Cf(a.i,d,c,e),0>c&&a.error("unable to parse instruction: "+b.Ma[0]+" "+b.Ma[1])):(c=Ag(a,d,e),void 0===c?a.error("unable to parse expression: "+d):void 0===a.w[e]?a.error("undefined fixup location: "+n(e,0,!0)):c+=a.w[e]);b=Ie(a.i,c||0,36,!0);(c<-B||c>=E)&&xg(a,"truncated value "+n(c)+" at location "+n(e)+" to "+n(b));a.w[e]=b})}catch(t){a.j(t.message),a.K=
|
||||
-1}a.i.K=d;return a.K}
|
||||
function yg(a,b){if(a.b){if(1==a.b){var c=b.indexOf(a.J);0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.F+" definition: "+b)}if(1<a.b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.b++;else if(b[d]==a.H&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.C||"";a.v[d].Ka+=b;a.b||(a.C=null,Bg(a,d));b=c}if(a.b)return!0}null!=a.u&&(b=Cg(a,b));c=b.match(/\s*([A-Z$%._][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i);if(!c||c[4]&&";"!=c[4].slice(0,1))return a.error("failed to parse line: "+
|
||||
b),!1;d=c[1];b=c[2].toUpperCase();c=c[3].trim();if(d){var e=d.slice(-1),d=d.slice(0,-1);":"==e?Dg(a,d,a.Fa,!0):(c=b+c,b=e)}a.F=b;c=c.trim();"="==c[0]&&(d=b,c=c.substr(1),b="=");for(var e=c,f=0,g=null,h=0,k=-1;h<e.length;){var m=e[h];"["==m&&(f++||(k=h));h++;if("]"==m&&0>=--f)break}0>f&&a.error("missing bracket(s): "+e);0<=k&&(g=e.substr(k,h-k));for((e=g)&&(c=c.replace(e,Eg(a,Fg,e)));e=Gg(a,c);)c=c.replace(e,e.slice(0,-1));if(!Bg(a,b,c))switch(b){case "":c&&Hg(a,0,[c]);break;case "=":b=d;d=Ag(a,c);
|
||||
void 0===d?a.error("parseExpression("+c+")"):Dg(a,b,d);break;case Ig:case Jg:case Kg:Cg(a,c);break;case Lg:Hg(a,0,[c.replace(",",",,")]);break;case Mg:case Ng:case Og:Eg(a,b,c);break;case Pg:case Qg:break;default:d=b,e=c,f=Cf(a.i,d),0<=f?(Hg(a,f,[d,e]),d=!0):d=!1,d||Hg(a,0,[b+c])}return!0}
|
||||
function Bg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){b=",";"("==c[0]&&(b+=")",c=c.substr(1));for(var e=[];c;){c=c.trim();var f=Rg(a,c,b);if(!f)break;e.push(f);c=c.substr(f.length+1)}zg(a,d.Ka,d.vb,e);return!0}if("_"!=b[0])return!1;switch(b.substr(1)){case Ng:d.mb||zg(a,d.Ka);break;case Og:for(;0<d.mb--;)zg(a,d.Ka);break;default:return!1}return!0}
|
||||
function zg(a,b,c,d){b=b.split(/\r?\n/);for(var e=0;e<b.length;e++){var f=b[e]+"\r\n";if(c)for(var g=0;g<c.length;g++)for(var h=c[g],k=d[g]||"",m=0;;){var p=f.indexOf(h,m);if(0>p)break;var m=p+1,t=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(t>=f.length)&&f[t].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(t),m=p+k.length)}if(!yg(a,f))break}}og.prototype.error=function(a){throw Error("error"+(this.ja?" at line "+ua(this.ja):"")+": "+a);};
|
||||
function xg(a,b){a.j("warning"+(a.ja?" at line "+ua(a.ja):"")+": "+b)}function Rg(a,b,c){c=void 0===c?",":c;for(var d=0,e=null,f=0;d<b.length;){var g=b[d];if(0<=c.indexOf(g))break;if("<"==g)f++;else if(">"==g&&0>--f){a.error("missing bracket(s): "+b);break}d++}f?0<f&&a.error("extra bracket(s): "+b):e=b.substr(0,d);return e}
|
||||
function Ag(a,b,c){var d;void 0===c&&(c=a.Fa);b=b.replace(/\.([^0-9]|$)/g,J(a.i,c,-1)+"$1");(c=b.match(/^([^,]*),,([^,]*)$/))?(b=c[1]?X(a.i,c[1]):0,void 0!==b&&(c=c[2]?X(a.i,c[2]):0,void 0!==c&&(d=Ie(a.i,b,18,!0)*Math.pow(2,18)+Ie(a.i,c,18,!0)))):d=X(a.i,b);return d}function Gg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="_"+b;a.v[d]&&a.error("reserved symbol redefined: "+c);a.v[d]={name:d,mb:Sg,vb:[],Ib:[],Ka:b+": 0",ja:a.ja};a.G.push(d)}return c}
|
||||
function Cg(a,b){var c=b;null==a.u&&(a.u=a.D="",b&&(a.u=b[0],c=b=b.substr(1)));if(a.u){var d=b.indexOf(a.u);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.u=null);a.D+=b}if(null==a.u){var d=b=0,e,f,g=a.D.length;a.F==Jg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.F==Kg&&(e--,f++));var k=a.D.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Hg(a,d),b=0)}b&&Hg(a,d)}return c}
|
||||
function Eg(a,b,c){var d,e,f,g;a.J="<";a.H=">";e=f=[];if(b==Mg){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+" definition: "+c),"";b=d[1];a.v[b]&&a.error("macro redefined: "+b);e=d[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);c=Tg;g=3}else if(b==Fg)a.J="[",a.H="]",b="_"+ua(a.Fa,5),a.v[b]&&a.error("literal symbol redefined: "+b),d=[c[0],b+": "+c.substr(1)],c=Ug,a.G.push(b),g=0;else{g=Rg(a,c);if(!g)return a.error("missing "+b+" expression: "+c),"";c=c.substr(g.length+
|
||||
1);g=g.trim();d=c.match(/\s*(<|)(.*)/i);b="_"+b;c=Ag(a,g)||0;g=1}b=b.toUpperCase();a.b=1;var h="";d[g]&&(a.b=2,h=d[g+1],h.slice(-1)==a.H&&(a.b=0,h=h.slice(0,-1)));a.v[b]={name:b,mb:c,vb:e,Ib:f,Ka:h,ja:a.ja};a.b?a.C=b:Bg(a,b);return b}function Dg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&a.L[b]?a.error("label "+b+" redefined"):(a.L[b]={name:b,value:c,ja:a.ja,hd:d,gd:e,jd:f},a.i.K[b]=c)}
|
||||
function Hg(a,b,c){a.w[a.Fa]=b;c&&a.I.push({Fa:a.Fa,Ma:c});a.Fa++}var Ig="ASCII",Jg="ASCIZ",Mg="DEFINE",Ng="IFE",Fg="LITERAL",Pg="PAGE",Og="REPEAT",Kg="SIXBIT",Qg="SUBTTL",Lg="XWD",Tg=-1,Ug=-2,Sg=-3;
|
||||
function Vg(a,b,c){u.call(this,"Computer",a,33554432);this.A.V=!1;this.R=null;Wg(this,b);this.O=Yc(this,"autoPower",a,6);this.w=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.T=!1;this.I=this.C=null;this.S=this.P=!1;this.ba=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Xg(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new xc({id:this.Ua+".bus",busWidth:this.aa},this.v,this.D);var d,e=pb(this.id);if((this.u=rb("Panel",this.id))&&this.u.ua)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.ua=this.u.ua;this.j(Pb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ea&&d.Ea(this,this.G,this.v,this.D);b=null;d=Yc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Yc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Yg),this.b&&(this.I=new G(this,"1.34.2"),Zg(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=$g(this))&&(this.K=!0);if(b){var g=this;Ga(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Da(b):"")+")")):(g.L=b,g.T=!0);Kb(g)})}else Kb(this);this.J.power||(this.O=!0);!c&&this.O&&ah(this,this.Oa)}else r("Unable to find CPU component")}pa(Vg,u);function Wg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
|
||||
function Yc(a,b,c,d){var e=b.toLowerCase(),e=Ta(b)||Ta(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function ah(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Jb(f)){Jb(f,function(){ah(a,b,c)});return}}b.call(a,c)}
|
||||
function bh(a,b){var c=new G(a,"1.34.2",ch);if(Zg(c)&&dh(c)){var d=c.get(eh),e=b?b.get(eh):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Vg.prototype;
|
||||
l.Oa=function(a){void 0===a&&(a=this.b||(this.L?fh:Yg));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new G(this,"1.34.2");if(a==gh)b=!0;else if(a>Yg){if(Zg(d,this.L)){this.C=new G(this,"1.34.2",hh);Zg(this.C)&&(ih(this,d),a=uh,vh(this.C));this.C.set(eh,Fa());wh(this.C);var e=this.b&&!this.K;if(a==fh||ob("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=dh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zg(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(xh,""),this.i=null)):this.j(f+": "+g),vh(d),Zg(d)?(c=dh(d),e=!0):c=!1))}e&&bh(this,c?d:null)}else a==uh&&d.clear()}else bh(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=yh(this,g,d,b,c));b=[d,a,c];a!=gh?ah(this,this.Ab,b):this.Ab(b)}};
|
||||
function yh(a,b,c,d,e){if(!b.A.V){b.A.V=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.va(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Yg,window&&window.location.reload()):a.P=!0,b.va(null),e=!1),!d&&b.ob){var g=b.ob.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.Ab=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(yh(this,this.v,b,c,a),I(this,-2),this.v.Z());this.P&&(ih(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function ih(a,b){if(ob("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ga("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function tg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",ch),h=Fa();g.set(eh,h);f.set(eh,h);f.set(zh,"1.34.2");f.set(Ah,window?window.location.href:null);f.set(Bh,window?window.navigator.userAgent:"");a.v&&a.v.ka&&(c&&(b&&(a.v.A.Z=a.v.A.N),a.v.W()),d=a.v.ka(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var m=h[k];m.A.V&&(m.ka&&(d=m.ka(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Ch(a,a.i,f.toString()),wh(g)&&wh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Dh),d&&f.clear(h)):e=f.toString());c&&(a.A.V=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
function og(a,b,c,d,e){this.P=b||0;this.R=c;this.i=d;this.done=e;this.j=d.j;this.v={};this.O={};this.G=[];this.I=[];this.w=[];this.M=this.ka=0;this.Ga=this.P;this.F=null;this.b=0;this.C=null;this.J=this.H="";this.u=null;this.ea=this.D="";this.L=0;this.K=a.split(";");wg(this)}
|
||||
function wg(a){a.L==a.K.length?a.done(xg(a)):Ga(a.K[a.L++],null,!0,function(b,c,d){if(d)a.done(d,b);else{d=c;if(za(b,".html")){d="";var e;for(b=/<pre>([\s\S]*?)<\/pre>/gi;e=b.exec(c);)e=e[1],0<=e.indexOf("&")&&(e=e.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&")),d+=e;(e=d.match(/&[a-z]+;/i))&&yg(a,"unrecognized HTML entity: "+e[0])}a.ea&&(a.ea+="\n");a.ea+=d;setTimeout(function(){wg(a)},0)}})}
|
||||
function xg(a){if(0<=a.R.indexOf("p"))return a.i.j(a.ea),0;var b=Pe(a.i);try{var c,d=a.ea.split(/\r?\n/);for(c=0;c<d.length&&(a.ka++,zg(a,d[c]+"\r\n"));c++);a.b&&a.error("open block from line "+a.v[a.C].ka);for(c=0;c<a.G.length;c++){var e=a.G[c],f=a.v[e];f?Ag(a,f.ea):a.error("missing definition for literal: "+e)}a.I.forEach(function(b){var c,d=b.Ma[0];c=b.Ma[1];var e=b.Ga;1==b.Ma.length&&(0<=d.indexOf("@")||0<=d.indexOf("("))&&(c=d,d="");null!=c?(c=Cf(a.i,d,c,e),0>c&&a.error("unable to parse instruction: "+
|
||||
b.Ma[0]+" "+b.Ma[1])):(c=Bg(a,d,e),void 0===c?a.error("unable to parse expression: "+d):void 0===a.w[e]?a.error("undefined fixup location: "+m(e,0,!0)):c+=a.w[e]);b=Ie(a.i,c||0,36,!0);(c<-B||c>=E)&&yg(a,"truncated value "+m(c)+" at location "+m(e)+" to "+m(b));a.w[e]=b})}catch(g){a.j(g.message),a.M=-1}a.i.K=b;return a.M}
|
||||
function zg(a,b){if(a.b){if(1==a.b){var c=b.indexOf(a.J);0<=c?(a.b++,b=b.substr(c+1)):a.error("expected "+a.F+" definition: "+b)}if(1<a.b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.b++;else if(b[d]==a.H&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.C||"";a.v[d].ea+=b;a.b||(a.C=null,Cg(a,d));b=c}if(a.b)return!0}null!=a.u&&(b=Dg(a,b));c=b.match(/\s*([A-Z$%._][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i);if(!c||c[4]&&";"!=c[4].slice(0,1))return a.error("failed to parse line: "+
|
||||
b),!1;d=c[1];b=c[2].toUpperCase();c=c[3].trim();if(d){var e=d.slice(-1),d=d.slice(0,-1);":"==e?Eg(a,d,a.Ga,!0):(c=b+c,b=e)}a.F=b;c=c.trim();"="==c[0]&&(d=b,c=c.substr(1),b="=");for(var e=c,f=0,g=null,h=0,k=-1;h<e.length;){var n=e[h];"["==n&&(f++||(k=h));h++;if("]"==n&&0>=--f)break}0>f&&a.error("missing bracket(s): "+e);0<=k&&(g=e.substr(k,h-k));for((e=g)&&(c=c.replace(e,Fg(a,Gg,e)));e=Hg(a,c);)c=c.replace(e,e.slice(0,-1));if(!Cg(a,b,c))switch(b){case "":c&&Ig(a,0,[c]);break;case "=":b=d;d=Bg(a,c);
|
||||
void 0===d?a.error("parseExpression("+c+")"):Eg(a,b,d);break;case Jg:case Kg:case Lg:Dg(a,c);break;case Mg:Ig(a,0,[c.replace(",",",,")]);break;case Ng:case Og:case Pg:Fg(a,b,c);break;case Qg:case Rg:break;default:d=b,e=c,f=Cf(a.i,d),0<=f?(Ig(a,f,[d,e]),d=!0):d=!1,d||Ig(a,0,[b+c])}return!0}
|
||||
function Cg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){b=",";"("==c[0]&&(b+=")",c=c.substr(1));for(var e=[];c;){c=c.trim();var f=Sg(a,c,b);if(!f)break;e.push(f);c=c.substr(f.length+1)}Ag(a,d.ea,d.vb,e);return!0}if("_"!=b[0])return!1;switch(b.substr(1)){case Og:d.mb||Ag(a,d.ea);break;case Pg:for(;0<d.mb--;)Ag(a,d.ea);break;default:return!1}return!0}
|
||||
function Ag(a,b,c,d){b=b.split(/\r?\n/);for(var e=0;e<b.length;e++){var f=b[e]+"\r\n";if(c)for(var g=0;g<c.length;g++)for(var h=c[g],k=d[g]||"",n=0;;){var p=f.indexOf(h,n);if(0>p)break;var n=p+1,t=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(t>=f.length)&&f[t].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(t),n=p+k.length)}if(!zg(a,f))break}}og.prototype.error=function(a){throw Error("error"+(this.ka?" at line "+ua(this.ka):"")+": "+a);};
|
||||
function yg(a,b){a.j("warning"+(a.ka?" at line "+ua(a.ka):"")+": "+b)}function Sg(a,b,c){c=void 0===c?",":c;for(var d=0,e=null,f=0;d<b.length;){var g=b[d];if(0<=c.indexOf(g))break;if("<"==g)f++;else if(">"==g&&0>--f){a.error("missing bracket(s): "+b);break}d++}f?0<f&&a.error("extra bracket(s): "+b):e=b.substr(0,d);return e}
|
||||
function Bg(a,b,c){var d;void 0===c&&(c=a.Ga);b=b.replace(/\.([^0-9]|$)/g,J(a.i,c,-1)+"$1");(c=b.match(/^([^,]*),,([^,]*)$/))?(b=c[1]?X(a.i,c[1]):0,void 0!==b&&(c=c[2]?X(a.i,c[2]):0,void 0!==c&&(d=Ie(a.i,b,18,!0)*Math.pow(2,18)+Ie(a.i,c,18,!0)))):d=X(a.i,b);return d}function Hg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="_"+b;a.v[d]&&a.error("reserved symbol redefined: "+c);a.v[d]={name:d,mb:Tg,vb:[],Ib:[],ea:b+": 0",ka:a.ka};a.G.push(d)}return c}
|
||||
function Dg(a,b){var c=b;null==a.u&&(a.u=a.D="",b&&(a.u=b[0],c=b=b.substr(1)));if(a.u){var d=b.indexOf(a.u);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.u=null);a.D+=b}if(null==a.u){var d=b=0,e,f,g=a.D.length;a.F==Kg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.F==Lg&&(e--,f++));var k=a.D.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Ig(a,d),b=0)}b&&Ig(a,d)}return c}
|
||||
function Fg(a,b,c){var d,e,f,g;a.J="<";a.H=">";e=f=[];if(b==Ng){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!d)return a.error("unrecognized "+b+" definition: "+c),"";b=d[1];a.v[b]&&a.error("macro redefined: "+b);e=d[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);c=Ug;g=3}else if(b==Gg)a.J="[",a.H="]",b="_"+ua(a.Ga,5),a.v[b]&&a.error("literal symbol redefined: "+b),d=[c[0],b+": "+c.substr(1)],c=Vg,a.G.push(b),g=0;else{g=Sg(a,c);if(!g)return a.error("missing "+b+" expression: "+c),"";c=c.substr(g.length+
|
||||
1);g=g.trim();d=c.match(/\s*(<|)(.*)/i);b="_"+b;c=Bg(a,g)||0;g=1}b=b.toUpperCase();a.b=1;var h="";d[g]&&(a.b=2,h=d[g+1],h.slice(-1)==a.H&&(a.b=0,h=h.slice(0,-1)));a.v[b]={name:b,mb:c,vb:e,Ib:f,ea:h,ka:a.ka};a.b?a.C=b:Cg(a,b);return b}function Eg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&a.O[b]?a.error("label "+b+" redefined"):(a.O[b]={name:b,value:c,ka:a.ka,hd:d,gd:e,jd:f},a.i.K[b]=c)}
|
||||
function Ig(a,b,c){a.w[a.Ga]=b;c&&a.I.push({Ga:a.Ga,Ma:c});a.Ga++}var Jg="ASCII",Kg="ASCIZ",Ng="DEFINE",Og="IFE",Gg="LITERAL",Qg="PAGE",Pg="REPEAT",Lg="SIXBIT",Rg="SUBTTL",Mg="XWD",Ug=-1,Vg=-2,Tg=-3;
|
||||
function Wg(a,b,c){u.call(this,"Computer",a,33554432);this.A.V=!1;this.R=null;Xg(this,b);this.O=Yc(this,"autoPower",a,6);this.w=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.T=!1;this.I=this.C=null;this.S=this.P=!1;this.ba=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Yg(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new xc({id:this.Ua+".bus",busWidth:this.aa},this.v,this.D);var d,e=pb(this.id);if((this.u=rb("Panel",this.id))&&this.u.va)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.va=this.u.va;this.j(Pb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Fa&&d.Fa(this,this.G,this.v,this.D);b=null;d=Yc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Yc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Zg),this.b&&(this.I=new G(this,"1.34.2"),$g(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=ah(this))&&(this.K=!0);if(b){var g=this;Ga(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Da(b):"")+")")):(g.L=b,g.T=!0);Kb(g)})}else Kb(this);this.J.power||(this.O=!0);!c&&this.O&&bh(this,this.Oa)}else r("Unable to find CPU component")}pa(Wg,u);function Xg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
|
||||
function Yc(a,b,c,d){var e=b.toLowerCase(),e=Ta(b)||Ta(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function bh(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Jb(f)){Jb(f,function(){bh(a,b,c)});return}}b.call(a,c)}
|
||||
function ch(a,b){var c=new G(a,"1.34.2",dh);if($g(c)&&eh(c)){var d=c.get(fh),e=b?b.get(fh):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Wg.prototype;
|
||||
l.Oa=function(a){void 0===a&&(a=this.b||(this.L?gh:Zg));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new G(this,"1.34.2");if(a==hh)b=!0;else if(a>Zg){if($g(d,this.L)){this.C=new G(this,"1.34.2",ih);$g(this.C)&&(jh(this,d),a=vh,wh(this.C));this.C.set(fh,Fa());xh(this.C);var e=this.b&&!this.K;if(a==gh||ob("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=eh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?$g(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(yh,""),this.i=null)):this.j(f+": "+g),wh(d),$g(d)?(c=eh(d),e=!0):c=!1))}e&&ch(this,c?d:null)}else a==vh&&d.clear()}else ch(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=zh(this,g,d,b,c));b=[d,a,c];a!=hh?bh(this,this.Ab,b):this.Ab(b)}};
|
||||
function zh(a,b,c,d,e){if(!b.A.V){b.A.V=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Zg,window&&window.location.reload()):a.P=!0,b.wa(null),e=!1),!d&&b.ob){var g=b.ob.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.Ab=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(zh(this,this.v,b,c,a),I(this,-2),this.v.Z());this.P&&(jh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function jh(a,b){if(ob("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ga("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function tg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.2"),g=new G(a,"1.34.2",dh),h=Fa();g.set(fh,h);f.set(fh,h);f.set(Ah,"1.34.2");f.set(Bh,window?window.location.href:null);f.set(Ch,window?window.navigator.userAgent:"");a.v&&a.v.la&&(c&&(b&&(a.v.A.Z=a.v.A.N),a.v.W()),d=a.v.la(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var n=h[k];n.A.V&&(n.la&&(d=n.la(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.A.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Dh(a,a.i,f.toString()),xh(g)&&xh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Eh),d&&f.clear(h)):e=f.toString());c&&(a.A.V=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
l.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Ob(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Ob(this,"Resetting "+this.v.type),this.v.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Ob(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
|
||||
l.stop=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}I(this,-1)};
|
||||
function I(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.ab+=d))&&(e.textContent=c.A.N?c.aa.toFixed(2)+"Mhz":"Stopped",c.ab=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.ca||8,e=e||0,e=8==f?n(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.wa);hc(a,a.i);bc(a,a.w)}}
|
||||
l.la=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.V?tg(d,!1,!0):ah(d,d.Oa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.V&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");tg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Oa(Yg)}else d.reset(),d.v&&!d.D&&d.v.Z()},!0;case "save":if(za(Na(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.J[b]=c,c.onclick=function(){var a=Xg(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=tg(d,b);b?Ch(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Xg(a,b){var c=a.i;c||((c=Qa(xh),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Eh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
|
||||
function Eh(a,b){a.i=null;b=Ga(Na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(xh,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function $g(a){var b=null;a.i&&(b=Na()+"/api/v1/user?req=load&user="+a.i+"&state="+Fh(a,"1.34.2"));return b}
|
||||
function Ch(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Fh(a,"1.34.2");d.data=c;b=Ga(Na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("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.da(c),Ra(xh,""),a.i=null)}}
|
||||
function hd(a,b){if(a.ua){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ua.focus();!b&&window&&window.scrollTo(c,d)}}var hh="failsafe",ch="validate",eh="timestamp",zh="version",Ah="url",Bh="browser",xh="user",gh=-1,Yg=0,fh=1,uh=2,Dh=3;Ya(function(){for(var a=x(document,w+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=v(c),c=x(c,w,"computer"),e=0;e<c.length;e++){var f=c[e],g=v(f),g=new Vg(g,d,!0);sb(g,f);g.O&&ah(g,g.Oa)}});
|
||||
Za.show.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=rb("Computer",c.id))&&c.S&&!c.A.V&&c.Oa(gh)}});Za.exit.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=rb("Computer",c.id))&&c.A.V&&tg(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.u=!1;this.key=Fh(a,b,c);vh(this,a.Kb)}l=G.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
l.data=function(){return this.b};function Zg(a,b){return b?(a.i=b,a.v=!0,a.u=!1,!0):a.v?!0:Oa()&&(b=Qa(a.key))?(a.i=b,a.v=!0):!1}function dh(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.i),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function wh(a){var b=!0;if(Oa()){var c=JSON.stringify(a.b);Ra(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
|
||||
function vh(a,b){a.i="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){vh(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Fh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Gh=0;
|
||||
function Hh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ga(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):Ih(k,a,b,c,d,e,f,g)})}
|
||||
function Ih(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Jh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Jh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ga(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);Jh(a,b,c)}})}else c(a,null)}
|
||||
function Kh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Aa(a))}function g(a){f("Error: "+a);m&&(--Gh||gb(!0));m=!1}var h,k,m=!0;Gh++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));t.appendChild(D)}d||
|
||||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Hh(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Gh||gb(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Gh||
|
||||
gb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Hh(c,b,a,e,!0,f,p):Ih(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(da){g(da.message)}return m}window.embedPDP10=function(a,b,c,d){gb(!1);return Kh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){gb(!1);return Kh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",m=null,p=0;p<f;p++){var t=b[p];if('"'==t||"'"==t)m&&t!=m?k+=t:(m?m=null:m=t,k&&(h.push(k),k=""));else{if(!m){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;tb(a)||(c=!1)}return c};window.enableEvents=gb;window.sendEvent=ib;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
|
||||
function I(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.ab+=d))&&(e.textContent=c.A.N?c.aa.toFixed(2)+"Mhz":"Stopped",c.ab=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.v.A.N;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.ca||8,e=e||0,e=8==f?m(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.xa);hc(a,a.i);bc(a,a.w)}}
|
||||
l.ma=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.V?tg(d,!1,!0):bh(d,d.Oa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.V&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");tg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Oa(Zg)}else d.reset(),d.v&&!d.D&&d.v.Z()},!0;case "save":if(za(Na(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.J[b]=c,c.onclick=function(){var a=Yg(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=tg(d,b);b?Dh(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Yg(a,b){var c=a.i;c||((c=Qa(yh),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Fh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
|
||||
function Fh(a,b){a.i=null;b=Ga(Na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(yh,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function ah(a){var b=null;a.i&&(b=Na()+"/api/v1/user?req=load&user="+a.i+"&state="+Gh(a,"1.34.2"));return b}
|
||||
function Dh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Gh(a,"1.34.2");d.data=c;b=Ga(Na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("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.da(c),Ra(yh,""),a.i=null)}}
|
||||
function hd(a,b){if(a.va){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.va.focus();!b&&window&&window.scrollTo(c,d)}}var ih="failsafe",dh="validate",fh="timestamp",Ah="version",Bh="url",Ch="browser",yh="user",hh=-1,Zg=0,gh=1,vh=2,Eh=3;Ya(function(){for(var a=x(document,w+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=v(c),c=x(c,w,"computer"),e=0;e<c.length;e++){var f=c[e],g=v(f),g=new Wg(g,d,!0);sb(g,f);g.O&&bh(g,g.Oa)}});
|
||||
Za.show.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=rb("Computer",c.id))&&c.S&&!c.A.V&&c.Oa(hh)}});Za.exit.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=v(a[b]);(c=rb("Computer",c.id))&&c.A.V&&tg(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.u=!1;this.key=Gh(a,b,c);wh(this,a.Kb)}l=G.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
l.data=function(){return this.b};function $g(a,b){return b?(a.i=b,a.v=!0,a.u=!1,!0):a.v?!0:Oa()&&(b=Qa(a.key))?(a.i=b,a.v=!0):!1}function eh(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.i),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function xh(a){var b=!0;if(Oa()){var c=JSON.stringify(a.b);Ra(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
|
||||
function wh(a,b){a.i="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){wh(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Gh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Hh=0;
|
||||
function Ih(a,b,c,d,e,f,g){f("Loading "+a+"...");Ga(a,null,!0,function(h,k,n){n?(k||(k="unable to load "+a+" ("+n+")"),g(k,null)):Jh(k,a,b,c,d,e,f,g)})}
|
||||
function Jh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Kh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Kh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ga(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],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[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);Kh(a,b,c)}})}else c(a,null)}
|
||||
function Lh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Aa(a))}function g(a){f("Error: "+a);n&&(--Hh||gb(!0));n=!1}var h,k,n=!0;Hh++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));t.appendChild(D)}d||
|
||||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?Ih(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Hh||gb(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Hh||
|
||||
gb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Ih(c,b,a,e,!0,f,p):Jh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(da){g(da.message)}return n}window.embedPDP10=function(a,b,c,d){gb(!1);return Lh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){gb(!1);return Lh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p<f;p++){var t=b[p];if('"'==t||"'"==t)n&&t!=n?k+=t:(n?n=null:n=t,k&&(h.push(k),k=""));else{if(!n){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;tb(a)||(c=!1)}return c};window.enableEvents=gb;window.sendEvent=ib;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue