Changed the remainder operator from '%' to '^/', mainly because '%' must be allowed in MACRO-10 symbols instead, but also because '%' led one to believe it was a "mod" operator (it wasn't); added IFDEF support to the MACRO-10 Mini-Assembler; updated the Debugger's assemble command to recognize filenames with "KLM" extensions, too.

This commit is contained in:
Jeff 2017-03-31 09:37:38 -07:00 committed by Jeff Parsons
commit e7988597c5
17 changed files with 573 additions and 142 deletions

View file

@ -569,3 +569,4 @@ DEFINE SDFARP (T,A,B,C,D,E,F,G,H,I,M,K,L) <
CAME AC+1,[K,,L]
ER4 AC+1,T
JUMPL AC+4,.-^D6 ;LOOP ON ERROR SWITCH>

View file

@ -0,0 +1,362 @@
SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979
LOC 30000
; **********************************************************************
;PROGRAM STARTING ADDRESSES
;THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
;NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
;OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
;MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
; **********************************************************************
BEGIN: JRST @MODLNK ;STAND-ALONE START
$START: JRST START ;MODE CHECK STARTING ADDRESS
DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
PFSTRT: JRST SADR2 ;POWER FAIL RESTART
REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
DDTSRT: JRST @DDTLNK ;DDT START
BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
RETURN: 0 ;RETURN ADDRESS STORAGE
START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
START2: SADR8 ; "
START3: SADR9 ; "
START4: SADR10 ; "
START5: SADR11 ; "
; **********************************************************************
;PROGRAM FIXED PARAMETER AREA
; **********************************************************************
PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
RANDBS: PAREA1 ;RANDOM BASE NUMBER
SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
ITRCNT: ITERAT ;PROGRAM ITERATIONS
$PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
$PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
$MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
$MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
$EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
$UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
$DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
$MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
PAREA7: PAREA5 ;OPTIONAL PARAMETER
PAREA8: PAREA6 ;OPTIONAL PARAMETER
; **********************************************************************
;PROGRAM VARIABLE PARAMETER AREA
; **********************************************************************
USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
MONCTL: 0 ;DIAG MON/SYS EXR FLAG
MONTEN: 0 ;-1= LOADED BY 10
CLOCKF: 0 ;CLOCK TICKED FLAG
CONSW: 0 ;CONSOLE SWITCH SETTINGS
PASCNT: 0 ;PROGRAM PASS COUNT
RUNFLG: 0 ;PROGRAM RUN FLAG
TESTPC: 0 ;SUBTEST PC
ERRPC: 0 ;ERROR PC
ERRTLS: 0 ;ERROR TOTALS
TICKS: 0 ;PROGRAM RUNNING TIME
MARGIN: 0 ;KI10 MARGIN WORD VALUE
$ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
; **********************************************************************
;SPECIAL PROGRAM DISPATCH ADDRESSES
; **********************************************************************
BEGEND: ENDUUO ;END OF PASS
$BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
$BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
CNTLC: SADR5 ;CONTROL C XFER ADDRESS
ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
CPOPJ1: ;SKIP RETURN
UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
CPOPJ: ;NON-SKIP REGULAR RETURN
UUOEXT: RTN ;UUO RETURN
UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
$UORTX: JFCL ;ADDITIONAL UUO LINKAGE
$UUOER: JFCL ;INITED AS (JRST $UOERX)
$ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
$ITRX1: JFCL ; "
$USRHL: JFCL ; "
$RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
$RSRTY: JFCL ; "
RESRT1: JFCL ; INITED AS (JRST RESRTX)
RESRT2: JFCL ; "
$PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
HALT . ;IMPROPER TRANSFER HALT
$PSHER: 0 ;INITED AS (JRST PSHERR)
ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
0 ;INITED AS (JRST $ITRC1)
; **********************************************************************
;PROCESSOR CONTROL STORAGE
; **********************************************************************
$ACC0: 0 ;INTERRUPT SAVED AC0
$SVPI: 0 ;INTERRUPT SAVED PI
$SVAPR: 0 ;INTERRUPT SAVED APR
$SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
$SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
$SVUUO: 0 ;CURRENT USERS UUO
$SVUPC: 0 ;PC OF CURRENT USERS UUO
REPTU: 0 ;REPEAT UUO ITERATIONS
SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
%CORFLG:0 ; " CORRECT FLAG
%COREC: 0 ; " CORRECT DATA
%ACTFL: 0 ; " ACTUAL FLAG
%ACTUL: 0 ; " ACTUAL DATA
%DISCR: 0 ; " DISCREPENCY DATA
; **********************************************************************
;UUO DISPATCH TABLE
; **********************************************************************
XLIST
IFNDEF LUUO1,<LUUO1=$UUOER>
IFNDEF LUUO2,<LUUO2=$UUOER>
IFNDEF LUUO3,<LUUO3=$UUOER>
IFNDEF LUUO4,<LUUO4=$UUOER>
IFNDEF LUUO5,<LUUO5=$UUOER>
IFNDEF LUUO6,<LUUO6=$UUOER>
IFNDEF LUUO7,<LUUO7=$UUOER>
IFNDEF LUUO10,<LUUO10=$UUOER>
IFNDEF LUUO11,<LUUO11=$UUOER>
IFNDEF LUUO12,<LUUO12=$UUOER>
IFNDEF LUUO13,<LUUO13=$UUOER>
IFNDEF LUUO14,<LUUO14=$UUOER>
IFNDEF LUUO15,<LUUO15=$UUOER>
IFNDEF LUUO16,<LUUO16=$UUOER>
IFNDEF LUUO17,<LUUO17=$UUOER>
IFNDEF LUUO20,<LUUO20=$UUOER>
IFNDEF LUUO21,<LUUO21=$UUOER>
IFNDEF LUUO22,<LUUO22=$UUOER>
IFNDEF LUUO23,<LUUO23=$UUOER>
IFNDEF LUUO24,<LUUO24=$UUOER>
IFNDEF LUUO25,<LUUO25=$UUOER>
IFNDEF LUUO26,<LUUO26=$UUOER>
IFNDEF LUUO27,<LUUO27=$UUOER>
IFNDEF LUUO30,<LUUO30=$UUOER>
IFNDEF LUUO31,<LUUO31=$UUOER>
IFNDEF LUUO32,<LUUO32=$UUOER>
IFNDEF LUUO33,<LUUO33=$UUOER>
LIST
UUODIS: LUUO1,,$UUOER
LUUO3,,LUUO2
LUUO5,,LUUO4
LUUO7,,LUUO6
LUUO11,,LUUO10
LUUO13,,LUUO12
LUUO15,,LUUO14
LUUO17,,LUUO16
LUUO21,,LUUO20
LUUO23,,LUUO22
LUUO25,,LUUO24
LUUO27,,LUUO26
LUUO31,,LUUO30
LUUO33,,LUUO32
; **********************************************************************
;MEMORY MANAGMENT STORAGE
; **********************************************************************
DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
MEMLOW: 0 ;LOWEST USABLE MEMORY
MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
; **********************************************************************
;PRINT CONTROL STORAGE
; **********************************************************************
PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
PNTENB: 0 ;PRINT ENABLE
PDISF: 0 ;PRINT DISABLED FLAG
PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
PNTSPC: 0 ;PRINT SPACE CONTROL
OPTIME: 0 ;TYPE-IN WAIT TIME
$TWCNT: 0 ;TIME WAITED
$DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
TTYFIL: 0 ;TTY EXEC FILLERS FLAG
TTYSPD: 0 ;TTY EXEC BAUD RATE
$TTCHR: 0 ;ACTUAL TYPED IN CHAR
$CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
$TYPNB: 0 ;TYPED IN NUMBER
$CRLF: 0 ;FREE CR/LF FLAG
$TABF: 0 ;TAB CONVERSION FLAG
$FFF: 0 ;FORM FEED CONVERSION FLAG
$VTF: 0 ;VERTICAL TAB CONVERSION FLAG
USRLFF: 0 ;USER LF FILLERS
USRCRF: 0 ;USER CR FILLERS
; **********************************************************************
;THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
;TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
; MOVEI NAME
; PNTA ;OR PNTAF
; **********************************************************************
CRLF: ASCII/
/
CRLF2: ASCII/
/
COMMA: ASCII/,/
PERIOD: ASCII/./
SPACE: ASCII/ /
TAB: ASCII/ /
MINUS:
HYPEN: ASCII/-/
PLUS: ASCII/+/
AST: ASCII/*/
ATSIN: ASCII/@/
LFP: ASCII/(/
RTP: ASCII/)/
BELL: BYTE (7) 007
QUEST: ASCII/?/
SLASH: ASCII!/!
DOLLAR: ASCII/$/
RADIX: ^D10 ;DECIMAL PRINT RADIX
RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
; **********************************************************************
;USER MODE OUTPUT FILE INFORMATION
; **********************************************************************
$OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
$OUTNM: SIXBIT /PRINT/ ;FILE NAME
$OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
BLOCK 2
; **********************************************************************
;DISK UPDATE MODE FILE INFORMATION
; **********************************************************************
$IBUF: BLOCK 3
$INNM: SIXBIT /PRINT/
$INEXT: SIXBIT /PNT/
BLOCK 2
; **********************************************************************
;PUSHDOWN LIST CONTROL INFORMATION
; **********************************************************************
PLIST: PLIST-PLISTE,,PLIST
PLISTS: BLOCK 200
PLISTE: 0 ;END OF PUSHDOWN LIST
; **********************************************************************
;POWER LINE CLOCK FREQUENCY FLAG
; **********************************************************************
CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
; **********************************************************************
;KL10 CACHE CONTROL FLAGS
; **********************************************************************
CSHFLG: 0 ;ALLOW CACHE IF 0
CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
; **********************************************************************
;NUMBER INPUT DIGIT FLAG
; **********************************************************************
TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
; **********************************************************************
;KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
; **********************************************************************
PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
; **********************************************************************
;ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
; **********************************************************************
%ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
%ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
%ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
; **********************************************************************
;SPECIAL USERS UUO INTERCEPT INSTRUCTION
; **********************************************************************
$$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
; **********************************************************************
;USER MODE MONITOR TYPE FLAG
; **********************************************************************
MONTYP: 0 ;0 = TOPS10, -1 = TOPS20
;*********************************************************************^
;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD
;*********************************************************************^
KLTYP: 0
; **********************************************************************
;SPECIAL USERS MUUO INTERCEPT INSTRUCTION
; **********************************************************************
$$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
; **********************************************************************
;SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
; **********************************************************************
$$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
; **********************************************************************
;"SWITCH" CALL USAGE CONTROL
; **********************************************************************
$$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
; **********************************************************************
;SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
; **********************************************************************
$$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
$$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
; **********************************************************************
;SM10 (KS-10) PROCESSOR TYPE FLAG
; **********************************************************************
SM10: 0 ;IF -1 THIS IS A KS-10
; **********************************************************************
;RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
; **********************************************************************
SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
; **********************************************************************
;SPECIAL FUTURE EXPANSION ROOM
; **********************************************************************
; **********************************************************************
;END OF FIXED STORAGE
; **********************************************************************
LOC 30577
ENDFIX: 0 ;END OF FIXED STORAGE

View file

@ -6771,3 +6771,4 @@ XP HALT,2542B11 >
; END
END DDT ;KLDDT HAS START ADDRESS

View file

@ -1084,3 +1084,4 @@ LMBXML==507 ;M-BOX CYCLE METER, LO
>> ;END CONDITIONAL ON KL10
LIST

View file

@ -7395,4 +7395,3 @@ IPAG: BLOCK ^D512
END <3,,EV>

View file

@ -287,3 +287,4 @@ $ACF: [ASCIZ/C(AC) FAILED/]
TLNN PALERS ;PRINT ALL ERRORS ?
JRST %ERRS1 ;NO
JRST %ERMS1 ;YES

View file

@ -315,3 +315,4 @@ SUBTTL DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT
MOP1 (\ADR,XX,0,V1,V3,V2)
LAST1: JRST BEGEND

View file

@ -119,3 +119,4 @@ F'T'0: AA1=A1 ;INITIAL C(AC)
CAME E,[EE] ;WAS C(E) CLOBBERED?
ER5 E,T'3 ;C(E) WAS CLOBBERED
JUMPL AC+2,F'T'0 ;LOOP ON ERROR SWITCH>

View file

@ -7,7 +7,7 @@ machines:
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a DAKAK.MAC;g 043004
commands: a &apos;dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm&apos;
---
PDP-10 KA10 Basic Instruction Diagnostic #11

View file

@ -717,17 +717,17 @@ var Sw="Hard Drive",Vw=["XTC","ATC","COMPAQ"],Tw=[{0:[306,2],1:[375,8],2:[306,6]
ba(Vx,mb);Vx.prototype.gh=function(){return-1};Vx.prototype.hh=function(){};Vx.prototype.Pk=function(a,b){return a.replace("["+b+"]","unimplemented")};
Vx.prototype.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.da?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b};
function Wx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a}
function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Wx(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(Wx(e))}return!0}
function Yx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.F;for(a.F=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Zx(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Yx(a,b,p,c-1,a.F,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.F=2;continue}if("^O"==k){a.F=8;continue}if("^D"==k){a.F=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==k||"^-"==k){p=p<<2|2;continue}if("^L"==
k){p=p<<2|3;continue}}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Wx(p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{m=!0;break}if(!k)break;p="<"==a.ha[0]?$x:ay;if(!p[k]){m=!0;break}u.length&&p[k]<=p[u[u.length-1]]&&Xx(v,u,1);u.push(k);a.F="^_"==k?10:e;p=0}if(m||!Xx(v,u)||1!=v.length)m=!0;m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.F=E;return g}
function by(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,m=e;k<b.length;){var p=b[k++];if(p==c){m=-1;break}if(!m)break;m--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Wx(h*Math.pow(2,d)+p,d*e,!0)}if(0<=m){!1===f&&a.P("parse error ("+b+")");break}else b=b.substr(0,g)+cy(a,h,-1)+b.substr(k)}return b}
function dy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.ha[0]&&(b=b.split(a.ha[0]).join("{").split(a.ha[1]).join("}"));b=by(a,b,'"',7,5,c);if(!b)return d;b=by(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&ey(a,null,d)}return d}
function dy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.ha[0]&&(b=b.split(a.ha[0]).join("{").split(a.ha[1]).join("}"));b=by(a,b,'"',7,5,c);if(!b)return d;b=by(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&ey(a,null,d)}return d}
function fy(a,b){var c,d=a.ha[0],e=a.ha[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=dy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?cy(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.la}if(null==
e)break;b=b.replace(d[0],e.toString())}return b}function Zx(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(f=oa(b,1<b.length?a.F:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Wx(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=Wx(f)}else d||a.P("invalid "+(c?c:"value")+": "+b);else d||a.P("missing "+(c||"value"));return f}
function ey(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.F?cy(a,c,32,8,1)+" "+c+".":cy(a,c,32,16,1)+" "+cy(a,c,32,8,1)+" "+cy(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function gy(a,b){if(b)return ey(a,b,a.ga[b]);var c=0;for(b in a.ga)ey(a,b,a.ga[b]),c++;return 0<c}
function cy(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.F){case 2:b=qa(b,0<c?c:0,e);break;case 8:b=ra(b,0<c?(c+2)/3|0:0,!!e);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=99999>=Math.abs(b)?5:11;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var ay={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},$x={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
var ay={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},$x={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function hy(a){Vx.call(this,a);this.ta=4;this.ma=5;this.wa=1048575;this.L=iy(this);this.Ta=iy(this);this.aa=iy(this);this.D=[];this.B=this.Z=this.N=[];jy(this);this.xa=0;ky(this);this.Ba={};ly(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return my(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return my(b,a)})}ba(hy,Vx);l=hy.prototype;
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Wb(a,"FDC");this.Xa=Wb(a,"HDC");this.Tc=Wb(a,"FPU");this.G=Wb(a,"Mouse");(a=yd(a,"messages"))&&ly(this,a);this.ma=b.I>>2;this.wa=b.N;this.ab=new Ud(this.H,7,"DBG");this.qa=ny;80186<=this.H.ca&&(this.qa=ny.slice(),this.qa[15]=oy,80286<=this.H.ca&&(this.qa[15]=py,80386<=this.H.ca&&(this.ta=8)));zl(this,64,function(a){qy(d,d.H.sc,a[0])});zl(this,4,function(a){if(a=a[0]){var b=Zx(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=ry(d,
b,sy),d.P("dumpSel("+sa(a?a.U:b)+"): %"+q(a?a.Lb:null,d.ma)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=ty[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+sa(a.ua&65535)+" off="+sa(a.Ka):"base="+q(a.ua,d.ma)+" limit="+uy(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+sa(a.ext&-65296)+

View file

@ -2642,7 +2642,7 @@ class DebuggerPDP10 extends Debugger {
return true;
}
var match = sOpcode.match(/^(['"]?)(.*\.mac|.*\.html|.*\.txt)\1$/i);
var match = sOpcode.match(/^(['"]?)(.*\.klm|.*\.mac|.*\.html|.*\.txt)\1$/i);
if (match) {
var dbg = this;
var cpu = this.cpu;

View file

@ -656,6 +656,7 @@ class Macro10 {
break;
case Macro10.PSEUDO_OP.DEFINE:
case Macro10.PSEUDO_OP.IFDEF:
case Macro10.PSEUDO_OP.IFE:
case Macro10.PSEUDO_OP.IFG:
case Macro10.PSEUDO_OP.IFL:
@ -781,6 +782,12 @@ class Macro10 {
var sOperator = name.substr(1);
switch(sOperator) {
case Macro10.PSEUDO_OP.IFDEF:
if (macro.nOperand) {
this.parseText(macro.sText);
}
break;
case Macro10.PSEUDO_OP.IFE:
if (!macro.nOperand) {
this.parseText(macro.sText);
@ -919,18 +926,6 @@ class Macro10 {
this.println("warning" + (this.nLine? " at line " + Str.toDec(this.nLine) : "") + ": " + sWarning);
}
/**
* isSymbolChar(ch)
*
* @this {Macro10}
* @param {string} ch
* @return {boolean}
*/
isSymbolChar(ch)
{
return !!ch.match(/[0-9A-Z$%.]/i);
}
/**
* getExpression(sOperands, sDelim)
*
@ -1224,6 +1219,54 @@ class Macro10 {
return aValues;
}
/**
* isDefined(sName)
*
* @this {Macro10}
* @param {string} sName
* @return {boolean}
*/
isDefined(sName)
{
return this.isMacro(sName) || this.isSymbol(sName) || this.dbg.isVariable(sName);
}
/**
* isMacro(sName)
*
* @this {Macro10}
* @param {string} sName
* @return {boolean}
*/
isMacro(sName)
{
return this.tblMacros[sName] !== undefined;
}
/**
* isSymbol(sName)
*
* @this {Macro10}
* @param {string} sName
* @return {boolean}
*/
isSymbol(sName)
{
return this.tblSymbols[sName] !== undefined;
}
/**
* isSymbolChar(ch)
*
* @this {Macro10}
* @param {string} ch
* @return {boolean}
*/
isSymbolChar(ch)
{
return !!ch.match(/[0-9A-Z$%.]/i);
}
/**
* defASCII(sOperands)
*
@ -1385,11 +1428,16 @@ class Macro10 {
sOperand = sOperand.trim();
match = sOperands.match(/\s*(<|)([\s\S]*)/i);
name = '?' + sOperator;
/*
* The expression is either a repeat count or a condition. Either way, we must be able to
* resolve it now, so we don't set fPass1 (but that doesn't mean it's the second pass, either).
*/
nOperand = this.parseExpression(sOperand) || 0;
if (sOperator == Macro10.PSEUDO_OP.IFDEF) {
nOperand = this.isDefined(sOperand)? 1 : 0;
} else {
/*
* The expression is either a repeat count or a condition. Either way, we must be able to
* resolve it now, so we don't set fPass1 (but that doesn't mean it's the second pass, either).
*/
nOperand = this.parseExpression(sOperand) || 0;
}
iMatch = 1;
}
@ -1678,6 +1726,7 @@ Macro10.PSEUDO_OP = {
DEFINE: "DEFINE",
END: "END",
EXP: "EXP",
IFDEF: "IFDEF",
IFE: "IFE",
IFG: "IFG",
IFL: "IFL",

View file

@ -519,7 +519,7 @@ class Debugger extends Component
if (!val2) return false;
valNew = Math.trunc(val1 / val2);
break;
case '%':
case '^/':
if (!val2) return false;
valNew = val1 % val2;
break;
@ -883,6 +883,8 @@ class Debugger extends Component
* added '!' as an alias for '|' (bitwise inclusive-or), '^-' as an alias for '~' (one's complement operator),
* and '_' as a shift operator (+/- values specify a left/right shift, and the count is not limited to 32).
*
* And to avoid conflicts with MACRO-10 syntax, I've replaced the original mod operator ('%') with '^/'.
*
* The MACRO-10 binary shifting suffix ('B') is a bit more problematic, since a capital B can also appear
* inside symbols. So I pre-scan for that suffix and replace all non-symbolic occurrences with an internal
* shift operator ('^_').
@ -901,7 +903,7 @@ class Debugger extends Component
* to remove spaces entirely, because if an operator-less expression like "A B" was passed in, we would want
* that to generate an error; if we converted it to "AB", evaluation might inadvertently succeed.
*/
var regExp = /({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/;
var regExp = /({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/;
sExp = sExp.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/, "$1$2^_").replace(/\s+/g, ' ');
var asValues = sExp.split(regExp);
value = this.parseArray(asValues, 0, asValues.length, this.nBase, fQuiet);
@ -1150,6 +1152,18 @@ class Debugger extends Component
return this.aVariables[sVar];
}
/**
* isVariable(sVar)
*
* @this {Debugger}
* @param {string} sVar
* @return {boolean}
*/
isVariable(sVar)
{
return this.aVariables[sVar] !== undefined;
}
/**
* setVariable(sVar, value)
*
@ -1230,7 +1244,7 @@ if (DEBUGGER) {
'<<': 12, // bitwise left shift
'-': 13, // subtraction
'+': 13, // addition
'%': 14, // remainder
'^/': 14, // remainder
'/': 14, // division
'*': 14, // multiplication
'_': 19, // MACRO-10 shift operator
@ -1252,7 +1266,7 @@ if (DEBUGGER) {
'<<': 12, // bitwise left shift
'-': 13, // subtraction
'+': 13, // addition
'%': 14, // remainder
'^/': 14, // remainder
'/': 14, // division
'*': 14, // multiplication
'!': 15, // bitwise OR (conflicts with logical NOT, but we never supported that)

View file

@ -199,17 +199,17 @@ var Qf=12,Rf=16,Sf=192,Zf=2,Yf=32,$f=64,ce=1,Tf=2,Wf=4,Vf=128,Uf=15,Xf=240,Pf=[5
function ag(a){u.call(this,"Debugger",a);this.w=+a.base||16;this.oa=null;this.U=["{","}"];this.fa=["[","]"];this.O=this.ba=this.D=0;this.M=!1;this.b=-1;this.g=[];this.T={}}aa(ag,u);ag.prototype.Kb=function(){return-1};ag.prototype.Lb=function(){};
ag.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.M?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(ya(a.substring(d,f))),d=f+1}}return b};
function bg(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a}
function cg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
function cg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=bg(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(bg(e))}return!0}
function dg(a,b,c,d,e,f){var g,h,k,p=!1,t=0,v=[],B=[],y=a.w;for(a.w=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)t=eg(a,h,null,f,t);else if("{"==k){h=1;for(t=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;t=dg(a,b,t,c-1,a.w,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.w=2;continue}if("^O"==k){a.w=8;continue}if("^D"==k){a.w=10;continue}if(!(t&-1073741824)){if("+"==k)continue;if("-"==k){t=t<<2|1;continue}if("~"==k||"^-"==k){t=t<<2|2;continue}if("^L"==
k){t=t<<2|3;continue}}p=!0;break}if(void 0===t)if(null==a.oa&&f)a.oa=h,t=0;else{p=!0;f=!f;break}v.push(bg(t));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{p=!0;break}if(!k)break;t="<"==a.U[0]?fg:gg;if(!t[k]){p=!0;break}B.length&&t[k]<=t[B[B.length-1]]&&cg(v,B,1);B.push(k);a.w="^_"==k?10:e;t=0}if(p||!cg(v,B)||1!=v.length)p=!0;p?!1===f&&a.i("parse error ("+(h||k)+")"):g=v.pop();a.w=y;return g}
function hg(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,p=e;k<b.length;){var t=b[k++];if(t==c){p=-1;break}if(!p)break;p--;t=t.charCodeAt(0);7==d?t&=127:t=t-32&63;h=bg(h*Math.pow(2,d)+t,d*e,!0)}if(0<=p){!1===f&&a.i("parse error ("+b+")");break}else b=b.substr(0,g)+ig(a,h,-1)+b.substr(k)}return b}
function jg(a,b,c){var d=void 0;a.oa=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=hg(a,b,'"',7,5,c);if(!b)return d;b=hg(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=dg(a,b,0,b.length,a.w,c);void 0!==d&&!1===c&&kg(a,null,d)}return d}
function jg(a,b,c){var d=void 0;a.oa=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=hg(a,b,'"',7,5,c);if(!b)return d;b=hg(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=dg(a,b,0,b.length,a.w,c);void 0!==d&&!1===c&&kg(a,null,d)}return d}
function lg(a,b){var c,d=a.U[0],e=a.U[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=jg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?ig(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[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(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=
a.O-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function eg(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.Kb(b),0<=f?f=a.Lb(f):(f=a.T[b],null==f&&(f=ma(b,1<b.length?a.w:10))),null!=f){for(;e;){switch(e&3){case 1:f=-bg(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=bg(f)}else d||a.i("invalid "+(c?c:"value")+": "+b);else d||a.i("missing "+(c||"value"));return f}
function kg(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.w?ig(a,c,32,8,1)+" "+c+".":ig(a,c,32,16,1)+" "+ig(a,c,32,8,1)+" "+ig(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.i((null!=b?b+": ":"")+d);return e}function mg(a,b){if(b)return kg(a,b,a.T[b]);var c=0;for(b in a.T)kg(a,b,a.T[b]),c++;return 0<c}
function ig(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.w){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=oa(b,2,a,"",e);break;case 8:(a=0<c?(c+2)/3|0:0)?12<a&&(a=12):(a=Math.abs(b),a=262143>=a?6:16777215>=a?8:12);b=oa(b,8,a,e?"0o":"");break;case 10:(e=0<c?Math.ceil(.3*c):0)?11<e&&(e=11):e=99999>=Math.abs(b)?5:11;b=oa(b,10,e);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var gg={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},fg={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
var gg={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},fg={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function ng(a){ag.call(this,a);this.style=og;this.H=pg();this.ta=pg();this.S=pg();this.B=[];this.j=this.L=this.A=[];qg(this);this.X=0;rg(this);this.ka={};sg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Nc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Nc(b,a)})}aa(ng,ag);l=ng.prototype;
l.Ga=function(a,b,c,d){this.I=b;this.u=c;this.R=a;(a=Jc(a,"messages"))&&sg(this,a);this.sa=tg;$d(this,64,function(a){a:{var b=d.I.b,c=a[0],e=a=0,k=b.length;if(c){a=ug(vg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.I.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var t=b[e];t.type==c?p++||d.i("..."):(c=t.type,p=Sb[c],t&&d.i(n(t.id)+" %"+n(e<<d.I.g)+" %%"+n(t.J)+" "+q(t.pb)+" "+
q(t.size)+" "+p),c!=vc&&(c=-1),p=0);a+=d.I.w;e++}}});zb(this)};

View file

@ -717,17 +717,17 @@ var Sw="Hard Drive",Vw=["XTC","ATC","COMPAQ"],Tw=[{0:[306,2],1:[375,8],2:[306,6]
ba(Vx,mb);Vx.prototype.gh=function(){return-1};Vx.prototype.hh=function(){};Vx.prototype.Pk=function(a,b){return a.replace("["+b+"]","unimplemented")};
Vx.prototype.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.da?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b};
function Wx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a}
function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Wx(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(Wx(e))}return!0}
function Yx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.F;for(a.F=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Zx(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Yx(a,b,p,c-1,a.F,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.F=2;continue}if("^O"==k){a.F=8;continue}if("^D"==k){a.F=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==k||"^-"==k){p=p<<2|2;continue}if("^L"==
k){p=p<<2|3;continue}}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Wx(p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{m=!0;break}if(!k)break;p="<"==a.ha[0]?$x:ay;if(!p[k]){m=!0;break}u.length&&p[k]<=p[u[u.length-1]]&&Xx(v,u,1);u.push(k);a.F="^_"==k?10:e;p=0}if(m||!Xx(v,u)||1!=v.length)m=!0;m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.F=E;return g}
function by(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,m=e;k<b.length;){var p=b[k++];if(p==c){m=-1;break}if(!m)break;m--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Wx(h*Math.pow(2,d)+p,d*e,!0)}if(0<=m){!1===f&&a.P("parse error ("+b+")");break}else b=b.substr(0,g)+cy(a,h,-1)+b.substr(k)}return b}
function dy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.ha[0]&&(b=b.split(a.ha[0]).join("{").split(a.ha[1]).join("}"));b=by(a,b,'"',7,5,c);if(!b)return d;b=by(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&ey(a,null,d)}return d}
function dy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.ha[0]&&(b=b.split(a.ha[0]).join("{").split(a.ha[1]).join("}"));b=by(a,b,'"',7,5,c);if(!b)return d;b=by(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&ey(a,null,d)}return d}
function fy(a,b){var c,d=a.ha[0],e=a.ha[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=dy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?cy(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.la}if(null==
e)break;b=b.replace(d[0],e.toString())}return b}function Zx(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(f=oa(b,1<b.length?a.F:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Wx(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=Wx(f)}else d||a.P("invalid "+(c?c:"value")+": "+b);else d||a.P("missing "+(c||"value"));return f}
function ey(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.F?cy(a,c,32,8,1)+" "+c+".":cy(a,c,32,16,1)+" "+cy(a,c,32,8,1)+" "+cy(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function gy(a,b){if(b)return ey(a,b,a.ga[b]);var c=0;for(b in a.ga)ey(a,b,a.ga[b]),c++;return 0<c}
function cy(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.F){case 2:b=qa(b,0<c?c:0,e);break;case 8:b=ra(b,0<c?(c+2)/3|0:0,!!e);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=99999>=Math.abs(b)?5:11;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var ay={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},$x={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
var ay={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},$x={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function hy(a){Vx.call(this,a);this.ta=4;this.ma=5;this.wa=1048575;this.L=iy(this);this.Ta=iy(this);this.aa=iy(this);this.D=[];this.B=this.Z=this.N=[];jy(this);this.xa=0;ky(this);this.Ba={};ly(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return my(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return my(b,a)})}ba(hy,Vx);l=hy.prototype;
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Wb(a,"FDC");this.Xa=Wb(a,"HDC");this.Tc=Wb(a,"FPU");this.G=Wb(a,"Mouse");(a=yd(a,"messages"))&&ly(this,a);this.ma=b.I>>2;this.wa=b.N;this.ab=new Ud(this.H,7,"DBG");this.qa=ny;80186<=this.H.ca&&(this.qa=ny.slice(),this.qa[15]=oy,80286<=this.H.ca&&(this.qa[15]=py,80386<=this.H.ca&&(this.ta=8)));zl(this,64,function(a){qy(d,d.H.sc,a[0])});zl(this,4,function(a){if(a=a[0]){var b=Zx(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=ry(d,
b,sy),d.P("dumpSel("+sa(a?a.U:b)+"): %"+q(a?a.Lb:null,d.ma)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=ty[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+sa(a.ua&65535)+" off="+sa(a.Ka):"base="+q(a.ua,d.ma)+" limit="+uy(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+sa(a.ext&-65296)+

View file

@ -27,7 +27,7 @@
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/macro10.js (C) Jeff Parsons 2012-2017
*/
var m,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var fa=0;function da(a){return"jscomp_symbol_"+(a||"")+fa++}
var m,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
function ga(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ha(this)}});ga=function(){}}function ha(a){var b=0;return ia(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ia(a){ga();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function ka(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function la(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
la("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});la("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
@ -41,8 +41,8 @@ function za(a){return a.replace(/[&<>"']/g,function(a){return Aa[a]})}function B
function Ga(){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 Ha(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="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));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 Ia(a,b){var c,d={ea:null,Y:null,la:null,ya: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.la=g.load;d.ya=g.exec;if(e=g.bytes)d.ea=e;else if(e=g.words)for(d.ea=Array(2*e.length),f=c=0;c<e.length;c++)d.ea[f++]=e[c]&255,d.ea[f++]=e[c]>>8&255;else if(e=g.longs)for(d.ea=Array(4*e.length),f=c=0;c<e.length;c++)d.ea[f++]=
e[c]&255,d.ea[f++]=e[c]>>8&255,d.ea[f++]=e[c]>>16&255,d.ea[f++]=e[c]>>24&255;else(e=g.data)?d.Pa=e:d.ea=g;d.ea&&(d.ea.length?1==d.ea.length&&(q(d.ea[0]),d=null):(q("Empty resource: "+a),d=null));d.Y=g.symbols}catch(h){q("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)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ea=e)}return d}
function Ia(a,b){var c,d={ea:null,Y:null,ma:null,ya: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.ma=g.load;d.ya=g.exec;if(e=g.bytes)d.ea=e;else if(e=g.words)for(d.ea=Array(2*e.length),f=c=0;c<e.length;c++)d.ea[f++]=e[c]&255,d.ea[f++]=e[c]>>8&255;else if(e=g.longs)for(d.ea=Array(4*e.length),f=c=0;c<e.length;c++)d.ea[f++]=
e[c]&255,d.ea[f++]=e[c]>>8&255,d.ea[f++]=e[c]>>16&255,d.ea[f++]=e[c]>>24&255;else(e=g.data)?d.Qa=e:d.ea=g;d.ea&&(d.ea.length?1==d.ea.length&&(q(d.ea[0]),d=null):(q("Empty resource: "+a),d=null));d.Y=g.symbols}catch(h){q("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)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ea=e)}return d}
function Ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ka(){if(null==La){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}La=a}return La}function Pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ra(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 Sa(a){if(!Ta){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," "))}Ta=c}return Ta[a]}function Ua(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
@ -81,24 +81,24 @@ function zc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}
m.Ib=function(a){if(!this.w)throw this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+K(this.D,a),!0,!0),this.v.W(),-1;};function Fc(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Gc=1,Lc=2;function Mc(a){r.call(this,"Device",a,256)}ka(Mc,r);m=Mc.prototype;m.La=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.reset=function(){};
m.save=function(){return(new F(this)).data()};m.restore=function(){return!0};Xa(function(){for(var a=w(document,v,"device"),b=0;b<a.length;b++){var c,d=a[b];c=t(d);switch(c.type){case "default":c=new Mc(c),sb(c,d)}}});
function Bc(a,b,c,d,e){this.H=a;this.id=Nc+=2;this.B=b;this.Ya=c;this.size=d||0;this.type=e||Oc;this.G=e==Pc;this.b=null;this.f=this.w=this.vb;this.g=this.D=this.Za;this.i=this.v=0;Cc(this);this.sb=this.Rb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qc(this,Rc)}else Qc(this)}m=Bc.prototype;m.save=function(){return this.j};m.restore=function(a){return a&&this.size==a.length?(this.j=a,this.sb=!0):!1};function Qc(a,b){b||(b=Sc);Tc(a,b,void 0);Uc(a,b,void 0)}
function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.vb);if(c||void 0===c)a.w=b[0]||a.vb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Za);if(c||void 0===c)a.D=b[1]||a.Za}m.Ra=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Za:a.D):--a.i||(a.f=a.w)}function Cc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}m.vb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.H.Ib(b);return-1};
function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.vb);if(c||void 0===c)a.w=b[0]||a.vb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Za);if(c||void 0===c)a.D=b[1]||a.Za}m.Sa=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Za:a.D):--a.i||(a.f=a.w)}function Cc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}m.vb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.H.Ib(b);return-1};
m.Za=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0);this.H.Ib(c)};m.gc=function(a){return this.j[a]};m.pc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.sb=!0)};m.ec=function(a,b){if(this.b&&null!=this.B){var c=this.b;Xc(c,this.B+a,2,c.N)&&c.W(!1)}return this.w(a,b)};m.oc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Xc(d,this.B+b,2,d.K)&&d.W(!1)}this.G?this.Za(a,0,c):this.D(a,b,c)};
var Oc=0,Pc=2,Hc=["NONE","RAM","ROM"],Nc=0,Sc=[],Rc=[Bc.prototype.gc,Bc.prototype.pc],Vc=[Bc.prototype.ec,Bc.prototype.oc];
function Yc(a,b){r.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.kb=0;this.ob=b;this.ja=c;this.lb=Math.round(this.ob/1E4)/100;this.ia=this.lb*this.ja;this.nb=this.Ia=this.ka=this.cb=0;this.A.O=this.A.ib=!1;this.A.ga=a.autoStart;"string"==typeof this.A.ga&&(this.A.ga="true"==this.A.ga);this.A.Va=!1;this.Ga=this.pa=0;this.Ha=+a.csStart;this.oa=+a.csInterval;this.qa=+a.csStop;this.S=[];this.Fb=this.jc.bind(this);this.X=this.M=this.V=this.N=this.L=this.Fa=this.U=this.ua=this.pb=this.ba=
0;this.Na=null;Mb(this)}ka(Yc,r);m=Yc.prototype;m.La=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Na=a.j;for(a=0;a<Zc.length;a++)(b=this.J[Zc[a]])&&this.H.ta(null,Zc[a],b);Mb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.Ba=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.ga="true"==c?!0:"false"==c?!1:!!c:null==this.A.ga&&(this.A.ga=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.ga,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.va&&(b=a.va,a.va=null,ed(a,b,!0))):this.status("No debugger detected");this.A.ga||this.u("CPU will not be auto-started "+(this.Na?"(click Run to start)":"(type 'go' to start)"))}return!0};
function Yc(a,b){r.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.kb=0;this.ob=b;this.ka=c;this.lb=Math.round(this.ob/1E4)/100;this.ja=this.lb*this.ka;this.nb=this.Ia=this.la=this.cb=0;this.A.O=this.A.ib=!1;this.A.ga=a.autoStart;"string"==typeof this.A.ga&&(this.A.ga="true"==this.A.ga);this.A.Va=!1;this.Ga=this.pa=0;this.Ha=+a.csStart;this.oa=+a.csInterval;this.qa=+a.csStop;this.S=[];this.Fb=this.jc.bind(this);this.X=this.M=this.V=this.N=this.L=this.Fa=this.U=this.ua=this.pb=this.ba=
0;this.Oa=null;Mb(this)}ka(Yc,r);m=Yc.prototype;m.La=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Oa=a.j;for(a=0;a<Zc.length;a++)(b=this.J[Zc[a]])&&this.H.ta(null,Zc[a],b);Mb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.Ba=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.ga="true"==c?!0:"false"==c?!1:!!c:null==this.A.ga&&(this.A.ga=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.ga,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.va&&(b=a.va,a.va=null,ed(a,b,!0))):this.status("No debugger detected");this.A.ga||this.u("CPU will not be auto-started "+(this.Oa?"(click Run to start)":"(type 'go' to start)"))}return!0};
m.sa=function(a){return a?this.save():!0};m.ga=function(){return this.A.O?!0:this.A.ga?(sc(this),!0):!1};m.Jb=function(){return 0};function bd(a){void 0===a.Ha&&(a.Ha=0);void 0===a.oa&&(a.oa=-1);void 0===a.qa&&(a.qa=-1);a.A.Va=0<=a.Ha&&0<a.oa;a.A.Va&&(a.Ga=0,a.pa=a.Ha-a.X)}function wc(a,b){if(a.A.Va){var c=!1;a.Ga=a.Ga+a.Jb()|0;a.pa-=b;0>=a.pa&&(a.pa+=a.oa,c=!0);0<=a.qa&&a.qa<=fd(a)&&(a.oa=a.qa=-1,bd(a),a.W(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+n(a.Ga))}}
m.ta=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.aa)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.aa);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.fb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.O?d.W():sc(d))},!0;
case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){gd(d,d.ja<<1,!0)},c.textContent=this.ia.toFixed(2)+"Mhz",!0}return!1};function vc(a,b,c){a.X+=b;c&&(a.V=a.N=0)}function hd(a,b){var c=1;b&&1<a.ja&&a.ba&&(c=a.ba/a.lb);a.nb=Math.round(1E3/id);a.Ia=Math.floor(a.ob/id*c);b||(a.ka=a.Ia);a.cb=0}function fd(a){return a.X+a.M+a.V-a.N}function ad(a){a.ba=0;a.pb=0;a.X=a.M=a.V=a.N=0;bd(a);gd(a,1)}
function gd(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.ia?b=1:d=!0;a.ja=b;b=a.lb*a.ja;if(a.ia!=b){a.ia=b;b=a.ia.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}vc(a,a.M);a.M=0;a.L=nb();a.U=0;hd(a);return d}function kd(a,b){for(var c=a.S.length-1;0<=c;c--){var d=a.S[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;c<a.S.length;c++)b.push(a.S[c][0]);return b}
case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){gd(d,d.ka<<1,!0)},c.textContent=this.ja.toFixed(2)+"Mhz",!0}return!1};function vc(a,b,c){a.X+=b;c&&(a.V=a.N=0)}function hd(a,b){var c=1;b&&1<a.ka&&a.ba&&(c=a.ba/a.lb);a.nb=Math.round(1E3/id);a.Ia=Math.floor(a.ob/id*c);b||(a.la=a.Ia);a.cb=0}function fd(a){return a.X+a.M+a.V-a.N}function ad(a){a.ba=0;a.pb=0;a.X=a.M=a.V=a.N=0;bd(a);gd(a,1)}
function gd(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.ja?b=1:d=!0;a.ka=b;b=a.lb*a.ka;if(a.ja!=b){a.ja=b;b=a.ja.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}vc(a,a.M);a.M=0;a.L=nb();a.U=0;hd(a);return d}function kd(a,b){for(var c=a.S.length-1;0<=c;c--){var d=a.S[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;c<a.S.length;c++)b.push(a.S[c][0]);return b}
function uc(a,b){for(var c=a.S.length-1;0<=c;c--){var d=a.S[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function md(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c}
m.jc=function(){if(this.A.O){this.cb>=this.ob&&hd(this,!0);this.ua=0;this.Fa=nb();if(this.U){var a=this.Fa-this.U;a>this.nb&&(this.L+=a,this.L>this.Fa&&(this.L=this.Fa))}try{do{var b=kd(this,this.A.Va?1:this.Ia);try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.ua+=b;this.M+=b;wc(this,b);uc(this,b);this.ka-=b;if(0>=this.ka){this.ka+=this.Ia;++this.pb>=nd&&(this.H&&J(this.H,void 0),this.pb=0);break}}while(this.A.O)}catch(e){this.W();this.H&&this.H.stop(nb(),fd(this));yb(this,
e.stack||e.message);return}if(this.A.O){a=setTimeout;b=this.Fb;this.U=nb();var c=this.nb;this.ua&&(c=Math.round(c*this.ua/this.Ia));var c=c-(this.U-this.Fa),d=this.U-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.X=0,gd(this)));if(0>c||this.ba<this.ia)-1E3>c&&(this.L-=c),c=0;this.cb+=this.ua;this.U+=c;a(b,c)}}};
m.jc=function(){if(this.A.O){this.cb>=this.ob&&hd(this,!0);this.ua=0;this.Fa=nb();if(this.U){var a=this.Fa-this.U;a>this.nb&&(this.L+=a,this.L>this.Fa&&(this.L=this.Fa))}try{do{var b=kd(this,this.A.Va?1:this.Ia);try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.ua+=b;this.M+=b;wc(this,b);uc(this,b);this.la-=b;if(0>=this.la){this.la+=this.Ia;++this.pb>=nd&&(this.H&&J(this.H,void 0),this.pb=0);break}}while(this.A.O)}catch(e){this.W();this.H&&this.H.stop(nb(),fd(this));yb(this,
e.stack||e.message);return}if(this.A.O){a=setTimeout;b=this.Fb;this.U=nb();var c=this.nb;this.ua&&(c=Math.round(c*this.ua/this.Ia));var c=c-(this.U-this.Fa),d=this.U-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.X=0,gd(this)));if(0>c||this.ba<this.ja)-1E3>c&&(this.L-=c),c=0;this.cb+=this.ua;this.U+=c;a(b,c)}}};
function sc(a,b){if(!zb(a))if(a.A.O)a.u(a.toString()+" busy");else{gd(a);a.A.O=!0;a.A.ib=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.Fb,0)}}m.$a=function(){return 0};m.W=function(a){var b=!1;if(this.A.O){md(this);vc(this,this.M);this.M=0;this.A.O=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(nb(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"];
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.mb=b;this.Oa=+a.addrReset||0;this.Qb=pd.bind(this);this.w=L.bind(this);this.Da=null;this.Cb=[];this.A.complete=!1}ka(od,Yc);m=od.prototype;
m.reset=function(){this.status("Model "+this.mb);this.A.O&&this.W();this.Ja=this.Ka=this.b=this.I=0;this.i=this.Ea=this.Oa;this.K=this.P=-1;this.F=this.j=0;this.jb=[0,0];this.va=[0,0];this.na=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.fc;this.g=this.qc;this.Da=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Jb=function(){return 0};
m.save=function(){var a=new F(this);a.set(0,[this.b,this.I,this.Ja,this.Ka,this.i,this.P,this.K,this.j,this.C,this.Ea,this.Ca,this.Oa]);a.set(1,[]);a.set(2,[this.X,this.ja,this.A.ga]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
m.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.I=b.next().value;this.Ja=b.next().value;this.Ka=b.next().value;this.i=b.next().value;this.P=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.Ea=b.next().value;this.Ca=b.next().value;this.Oa=b.next().value;b=a[2];this.X=b[0];gd(this,b[1]);this.A.ga=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Cb.length;d++){var e=this.Cb[d];
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.mb=b;this.Pa=+a.addrReset||0;this.Qb=pd.bind(this);this.w=L.bind(this);this.Da=null;this.Cb=[];this.A.complete=!1}ka(od,Yc);m=od.prototype;
m.reset=function(){this.status("Model "+this.mb);this.A.O&&this.W();this.Ja=this.Ka=this.b=this.I=0;this.i=this.Ea=this.Pa;this.K=this.P=-1;this.F=this.j=0;this.jb=[0,0];this.va=[0,0];this.na=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.fc;this.g=this.qc;this.Da=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Jb=function(){return 0};
m.save=function(){var a=new F(this);a.set(0,[this.b,this.I,this.Ja,this.Ka,this.i,this.P,this.K,this.j,this.C,this.Ea,this.Ca,this.Pa]);a.set(1,[]);a.set(2,[this.X,this.ka,this.A.ga]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
m.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.I=b.next().value;this.Ja=b.next().value;this.Ka=b.next().value;this.i=b.next().value;this.P=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.Ea=b.next().value;this.Ca=b.next().value;this.Pa=b.next().value;b=a[2];this.X=b[0];gd(this,b[1]);this.A.ga=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Cb.length;d++){var e=this.Cb[d];
if(e.nc===b[c]){d=e;break a}}d=null}d&&(d.next=this.Da,this.Da=d)}a=a[4];for(b=0;b<this.S.length&&b<a.length;b++)this.S[b][0]=a[b];return!0};function rd(a,b){a.j=a.j&-254049|b&254048;a.j|=b&4096;b&2048?a.j&4096||(a.j|=2048):a.j&=-2049}function sd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function G(a,b){a.i=b%Tb;a.P=-1}function qd(a){var b=[];for(a=a.Da;a;)b.push(a.nc),a=a.next;return b}m.fc=function(a){var b=this.G;a=this.Ca=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};
m.qc=function(a,b){var c=this.G;a=this.Ca=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
m.$a=function(a){this.A.complete=!0;var b=this.D?td(this.D)?1:this.A.ib?-1:0:0,c=a?this.A.ib?0:1:-1;this.A.ib=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(ud(this.D,this.i,c)){this.W();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Da||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&ud(this.D,this.i,c)){this.W();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ja=this.f(this.b):0<=this.P?(this.I=this.Ka=this.f(this.P),this.P=-1):(this.I=this.Ka=
@ -158,138 +158,139 @@ function Be(a){r.call(this,"ROM",a,128);this.Y=this.b=null;this.C=+a.addr;this.j
Be.prototype.La=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.Ba=function(){this.Y&&(this.D&&De(this.D,this.id,this.C,this.j,this.Y),delete this.Y);return!0};Be.prototype.sa=function(){return!0};
function Ce(a){if(!Bb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)yb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.j,8,!0)+")");else{var b;b=a.C;if(Ec(a.G,b,a.j,Pc)){var c;for(c=0;c<a.b.length;c++)yc(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.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;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}}}Mb(a)}}Xa(function(){for(var a=w(document,v,"rom"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Be(d);sb(d,c)}});
function Ee(a){r.call(this,"RAM",a);this.Y=this.Pa=null;this.i=+a.addr;this.j=+a.size;this.la=a.load;this.ya=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ya&&(this.ya=+this.ya);this.w=this.F=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ha("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(lb(c.bb,a,b),(a=Ia(a,b))?(c.Pa=a.Pa,
c.Y=a.Y,null==c.la&&(c.la=a.la),null==c.ya&&(c.ya=a.ya)):c.b=null);Fe(c)})}}ka(Ee,r);Ee.prototype.La=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Fe(this)};Ee.prototype.Ba=function(a,b){this.Y&&(this.D&&De(this.D,this.id,this.i,this.j,this.Y),delete this.Y);b||this.reset();return!0};Ee.prototype.sa=function(){return!0};
function Fe(a){if(a.G&&(!a.w&&a.j&&(Ec(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Bb(a))){if(!a.w)q("No RAM allocated");else if(a.b){if(!a.Pa)return;Ge(a,a.Pa,a.la,a.ya,a.i)?a.status('Loaded image "'+a.C+'"'):a.ha('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
Ee.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,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>=-A&&(g+=C);for(var g=Math.trunc(Math.abs(g))%C,h=d;f--&&h<e.size;h++)e.D(g,d,e.B+d);c-=16384;b++;d=0}this.Pa&&Ge(this,this.Pa,this.la,this.ya,this.i,!this.D)}this.F=!1};
function Ge(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)yc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Oa=d,G(a,d),f?a.A.aa?a.A.O||sc(a):a.A.ga=!0:a.D&&a.A.aa?a.W()||a.H.A.reset||(cd(a.D),J(a.H,-1)):!1===f&&a.W(),!a.A.O&&a.Na&&a.Na.stop()));return g}Xa(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ee(d);sb(d,c)}});
function Ee(a){r.call(this,"RAM",a);this.Y=this.Qa=null;this.i=+a.addr;this.j=+a.size;this.ma=a.load;this.ya=a.exec;null!=this.ma&&(this.ma=+this.ma);null!=this.ya&&(this.ya=+this.ya);this.w=this.F=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ha("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(lb(c.bb,a,b),(a=Ia(a,b))?(c.Qa=a.Qa,
c.Y=a.Y,null==c.ma&&(c.ma=a.ma),null==c.ya&&(c.ya=a.ya)):c.b=null);Fe(c)})}}ka(Ee,r);Ee.prototype.La=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Fe(this)};Ee.prototype.Ba=function(a,b){this.Y&&(this.D&&De(this.D,this.id,this.i,this.j,this.Y),delete this.Y);b||this.reset();return!0};Ee.prototype.sa=function(){return!0};
function Fe(a){if(a.G&&(!a.w&&a.j&&(Ec(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Bb(a))){if(!a.w)q("No RAM allocated");else if(a.b){if(!a.Qa)return;Ge(a,a.Qa,a.ma,a.ya,a.i)?a.status('Loaded image "'+a.C+'"'):a.ha('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
Ee.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,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>=-A&&(g+=C);for(var g=Math.trunc(Math.abs(g))%C,h=d;f--&&h<e.size;h++)e.D(g,d,e.B+d);c-=16384;b++;d=0}this.Qa&&Ge(this,this.Qa,this.ma,this.ya,this.i,!this.D)}this.F=!1};
function Ge(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)yc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Pa=d,G(a,d),f?a.A.aa?a.A.O||sc(a):a.A.ga=!0:a.D&&a.A.aa?a.W()||a.H.A.reset||(cd(a.D),J(a.H,-1)):!1===f&&a.W(),!a.A.O&&a.Oa&&a.Oa.stop()));return g}Xa(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ee(d);sb(d,c)}});
function He(a){r.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Ie;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.ta(null,a,b))}this.b=this.C=null;this.exports={connect:this.Kb,receiveData:this.gb,receiveStatus:this.hc,setConnection:this.kc}}ka(He,r);m=He.prototype;
m.ta=function(a,b,c){var d=this;switch(b){case Ie:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.xb:ma.Ob:46==c?b=ma.xb:a.ctrlKey&&c>=ma.wb&&c<=ma.Pb&&(b=c-(ma.wb-ma.Lb));b&&(a.preventDefault&&a.preventDefault(),d.gb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ma.Nb&&(b=ma.Mb);d.gb(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.gb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.La=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)};
m.Kb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.ab)return;c=Ca(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.bb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Kb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
m.sa=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new F(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.gb=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};m.hc=function(){};m.kc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Ie="buffer";
Xa(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new He(d);sb(d,c)}});function Je(a){r.call(this,"Debugger",a);this.T=+a.base||16;this.L=32;this.ka=null;this.U=["{","}"];this.ua=["[","]"];this.C=0;this.V=!1;this.w=-1;this.j=[];this.I={}}ka(Je,r);Je.prototype.tb=function(){return-1};Je.prototype.ub=function(){};
Xa(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new He(d);sb(d,c)}});function Je(a){r.call(this,"Debugger",a);this.T=+a.base||16;this.L=32;this.la=null;this.U=["{","}"];this.ua=["[","]"];this.C=0;this.V=!1;this.w=-1;this.j=[];this.F={}}ka(Je,r);Je.prototype.tb=function(){return-1};Je.prototype.ub=function(){};
function Ke(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.V?b="end":b=a.j[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(Ca(b.substring(c,f))),c=f+1}}return a}function Le(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Me|0)&(c/Me|0))*Me+((b&c)>>>0)}
function Ne(a,b,c){if(32>=a.L)return b|c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Me|0)^(c/Me|0))*Me+((b^c)>>>0)}function Y(a,b,c,d){var e=b;c=c||a.L;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 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?(b<2*-a&&(e=b%(2*a)),e+=2*a):e>=a&&(b>=2*a&&(e=b%(2*a)),e-=2*a));b!=e&&(b=e);return b}
function Oe(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,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "%":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:0;break;
function Oe(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,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "^/":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:0;break;
case "&":f=Le(a,f,g);break;case "!":case "|":e=a;32>=e.L?f|=g:(f=Y(e,f,0,!0),g=Y(e,g,0,!0),f=(f/Me|0|g/Me|0)*Me+((f|g)>>>0));break;case "^!":f=Ne(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=Y(a,f,0,!0),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g)));break;default:return!1}b.push(Y(a,f))}return!0}
function Pe(a,b,c,d,e,f){var g,h,k,l=!1,p=0,u=[],D=[],H=a.T;for(a.T=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Qe(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Pe(a,b,p,c-1,a.T,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.T=2;continue}if("^O"==k){a.T=8;continue}if("^D"==k){a.T=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==k||"^-"==k){p=p<<2|2;continue}if("^L"==
k){p=p<<2|3;continue}}l=!0;break}if(void 0===p)if(null==a.ka&&f)a.ka=h,p=0;else{l=!0;f=!f;break}u.push(Y(a,p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.U[0]?Re:Se;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Oe(a,u,D,1);D.push(k);a.T="^_"==k?10:e;p=0}if(l||!Oe(a,u,D)||1!=u.length)l=!0;l?!1===f&&a.u("parse error ("+(h||k)+")"):g=u.pop();a.T=H;return g}
k){p=p<<2|3;continue}}l=!0;break}if(void 0===p)if(null==a.la&&f)a.la=h,p=0;else{l=!0;f=!f;break}u.push(Y(a,p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.U[0]?Re:Se;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Oe(a,u,D,1);D.push(k);a.T="^_"==k?10:e;p=0}if(l||!Oe(a,u,D)||1!=u.length)l=!0;l?!1===f&&a.u("parse error ("+(h||k)+")"):g=u.pop();a.T=H;return g}
function Te(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,l=e;k<b.length;){var p=b[k++];if(p==c){l=-1;break}if(!l)break;l--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Y(a,h*Math.pow(2,d)+p,d*e,!0)}if(0<=l){!1===f&&a.u("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,h,-1)+b.substr(k)}return b}
function Ue(a,b,c){var d=void 0;a.ka=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=Te(a,b,'"',7,5,c);if(!b)return d;b=Te(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=Pe(a,b,0,b.length,a.T,c);void 0!==d&&!1===c&&Ve(a,null,d)}return d}
function Qe(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.tb(b),0<=f?f=a.ub(f):(f=a.I[b],null==f&&(f=na(b,1<b.length?a.T:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Y(a,f);break;case 2:f=Ne(a,f,-1);break;case 3:for(b=35;0<=b&&!Le(a,f,Math.pow(2,b));)b--;f=35-b}e>>>=2}f=Y(a,f)}else d||a.u("invalid "+(c?c:"value")+": "+b);else d||a.u("missing "+(c||"value"));return f}
function Ve(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.T?K(a,c,a.L,8,1)+" "+c+".":K(a,c,a.L,16,1)+" "+K(a,c,a.L,8,1)+" "+K(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function We(a){var b=a.I;a.I={};return b}function Xe(a,b){if(b)return Ve(a,b,a.I[b]);var c=0;for(b in a.I)Ve(a,b,a.I[b]),c++;return 0<c}
function Ue(a,b,c){var d=void 0;a.la=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=Te(a,b,'"',7,5,c);if(!b)return d;b=Te(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Pe(a,b,0,b.length,a.T,c);void 0!==d&&!1===c&&Ve(a,null,d)}return d}
function Qe(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.tb(b),0<=f?f=a.ub(f):(f=a.F[b],null==f&&(f=na(b,1<b.length?a.T:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Y(a,f);break;case 2:f=Ne(a,f,-1);break;case 3:for(b=35;0<=b&&!Le(a,f,Math.pow(2,b));)b--;f=35-b}e>>>=2}f=Y(a,f)}else d||a.u("invalid "+(c?c:"value")+": "+b);else d||a.u("missing "+(c||"value"));return f}
function Ve(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.T?K(a,c,a.L,8,1)+" "+c+".":K(a,c,a.L,16,1)+" "+K(a,c,a.L,8,1)+" "+K(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function We(a){var b=a.F;a.F={};return b}function Xe(a,b){if(b)return Ve(a,b,a.F[b]);var c=0;for(b in a.F)Ve(a,b,a.F[b]),c++;return 0<c}
function K(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.T){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=ta(b,2,a,"",e);break;case 8:b=ua(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=va(b,0<c?Math.ceil(.3*c):0);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var Se={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Re={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Me=Math.pow(2,32);
function Ye(a){Je.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.U=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ja=Z(0);this.F=[];this.b=this.N=this.K=[];Ze(this);this.X=this.qa=0;this.i=[];this.Ea=void 0;$e(this);this.D=this;this.xa={};this.ca=this.Eb=0;this.ba=null;this.S=[];af(this,a.messages);this.va=a.commands;this.Ha=[];this.P=0;this.Oa=this.Fa=null;this.C=this.Na=this.Ka=this.oa=this.Da=0;this.Ca=this.na=this.ia=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b,
var Se={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Re={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Me=Math.pow(2,32);
function Ye(a){Je.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.U=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ka=Z(0);this.I=[];this.b=this.N=this.K=[];Ze(this);this.X=this.qa=0;this.i=[];this.Ea=void 0;$e(this);this.D=this;this.xa={};this.ca=this.Eb=0;this.ba=null;this.S=[];af(this,a.messages);this.va=a.commands;this.Ha=[];this.P=0;this.Pa=this.Fa=null;this.C=this.Oa=this.Ka=this.oa=this.Da=0;this.Ca=this.na=this.ja=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b,
a)}):void 0===global[v]&&(global[v]=function(a){return ed(b,a)})}ka(Ye,Je);function bf(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,ra:!1,T:c}}function cf(a,b,c,d){a.B=b;a.eb=c||!1;a.ra=!1;a.T=d}function df(a){return[a.B,a.eb,a.ra,a.T,a.hb]}function ef(a,b){var c=Z(b[0],b[1],b[2]);c.ra=b[3];b[4]&&(c.zb=Ke(a,c.hb=b[4]));return c}m=Ye.prototype;
m.La=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.na=a.j;this.Ga=b.F;(b=$c(a,"messages"))&&af(this,b);if(a=$c(a,"commands"))this.va=a;ff(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=bf(gf(d,c,d.pa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Hc[c],p&&d.u(n(p.id,8)+" %"+
n(e<<d.G.i,8)+" %"+n(p.B,8)+" "+n(p.Ya,4,!0)+" "+n(p.size,4,!0)+" "+l),c!=Oc&&(c=-1),l=0);a+=16384;e++}}});Mb(this)};
m.ta=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ia=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ed(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.j.length-1&&(b=d.j[++d.w])):40==a.keyCode&&(0<d.w?b=d.j[--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,Va(c,function(){if(d.ia){var a=d.ia.value;
d.ia.value="";ed(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Va(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=tc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function dd(a){if(a.ia){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ia.focus();window&&window.scrollTo(b,c)}}m.Ma=function(a,b){var c=-1,d=bf(a);-1!==d&&(c=zc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=bf(a);-1!==d&&(yc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),J(this.H,-1))};
m.ta=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ja=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ed(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.j.length-1&&(b=d.j[++d.w])):40==a.keyCode&&(0<d.w?b=d.j[--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,Va(c,function(){if(d.ja){var a=d.ja.value;
d.ja.value="";ed(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Va(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=tc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function dd(a){if(a.ja){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ja.focus();window&&window.scrollTo(b,c)}}m.Na=function(a,b){var c=-1,d=bf(a);-1!==d&&(c=zc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=bf(a);-1!==d&&(yc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),J(this.H,-1))};
function gf(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.U[0],h=a.U[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=Ue(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?K(a,l):"undefined")}if(a.ua.length)for(f=a.ua[0],h=a.ua[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,u;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.F.length;h++)if(g=a.F[h].Y[f],null!=g){u=g.o;break}null!=u&&(p=Z(u));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Ue(a,b)}null!=f&&(f=hf(f,a.Ga),cf(c,f,d,e));return c}function jf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Ke(a,b.hb=c[2]))}
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,u;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.I.length;h++)if(g=a.I[h].Y[f],null!=g){u=g.o;break}null!=u&&(p=Z(u));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Ue(a,b)}null!=f&&(f=hf(f,a.Ga),cf(c,f,d,e));return c}function jf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Ke(a,b.hb=c[2]))}
function hf(a,b){0>a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function kf(a,b){return K(a,b/Tb,18)+" "+K(a,b%Tb,18)}
function af(a,b){a.D=a;a.ca=a.Eb=536870916;a.ba=null;a.S=[];b=Ke(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in bc){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.ca|=bc[c],a.u(c+" messages enabled"))}}function ff(a,b){for(var c in bc)if(16==bc[c]){a.xa[c]=b;break}}m.tb=function(a){return lf.indexOf(a.toUpperCase())};
m.ub=function(a){var b,c=this.v;switch(a){case mf:b=c.i;break;case nf:b=c.I;break;case of:b=c.b;break;case pf:b=c.j&x;break;case qf:b=c.j&131072?1:0;break;case rf:b=c.j&65536?1:0;break;case sf:b=c.j&32768?1:0;break;case tf:b=c.j&32?1:0;break;case uf:b=c.j&262144?1:0}return b};
m.message=function(a,b){b&&(a+=" @"+K(this,Z(this.v.Ea).B,18));if(!this.ba||a!=this.ba)if(this.ba=a,this.ca&1073741824)this.S.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.O)||Nb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.ka=0,a.H&&J(a.H,void 0))}};
m.message=function(a,b){b&&(a+=" @"+K(this,Z(this.v.Ea).B,18));if(!this.ba||a!=this.ba)if(this.ba=a,this.ca&1073741824)this.S.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.O)||Nb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.la=0,a.H&&J(a.H,void 0))}};
function $e(a){var b;if(!td(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.X=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(vf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.X=0;a.u("instruction history buffer allocated")}}function wf(a,b,c){if(!xf(a,c))return!1;sc(a.v,b);return!0}
function tc(a,b,c,d){if(!xf(a))return!1;var e="";null===c&&(e=(c=!a.Fa||"tr"==a.Fa)?"tr":"t");a.C=0;b||td(a)&&ud(a,a.v.i,0);try{b=kd(a.v,b);var f=a.v.$a(b);0<f&&(uc(a.v,f),a.C+=f,vc(a.v,f,!0),wc(a.v,f),a.oa++)}catch(g){"number"!=typeof g&&(a.C=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.na&&a.na.stop(),J(a.H,-1));cd(a,c||!1,e);return 0<a.C}m.W=function(a){this.v&&this.v.W(a)};function cd(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(yf+c),cf(a.M,a.v.i),b&&1!=a.P?zf(a):Af(a))}
function xf(a,b){var c;(c=!a.v||!Bb(a.v))||(c=a.v,c.A.aa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.O?(b||a.u("cpu busy or unavailable, command ignored"),!1):!zb(a.v)}m.Ba=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.sa=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){$e(this);this.oa=0;this.ba=null;this.C=0;cf(this.M,this.v.i);this.A.O=!1;Bf(this);a||cd(this)};
m.save=function(){var a=new F(this);a.set(0,df(this.M));a.set(1,df(this.pa));a.set(2,df(this.ja));a.set(3,[this.j,this.V,this.ca]);a.set(4,this.F);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=ef(this,a[b++]),this.pa=ef(this,a[b++]),this.ja=ef(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.V=a[b][1],this.ca|=a[b][2]);a[4]&&(this.F=a[4]);return!0};m.start=function(a,b){this.P||this.u("running");this.A.O=!0;this.Ka=a;this.Na=b};
m.stop=function(a,b){if(this.A.O){this.A.O=!1;this.C=b-this.Na;if(!this.P){b="stopped";if(this.C){a-=this.Ka;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";td(this)&&(b+=this.oa+" instructions, ",this.oa=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);Bf(this,this.v.i);this.ba=null}};function td(a){return 1<a.b.length||!!a.qa}
m.save=function(){var a=new F(this);a.set(0,df(this.M));a.set(1,df(this.pa));a.set(2,df(this.ka));a.set(3,[this.j,this.V,this.ca]);a.set(4,this.I);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=ef(this,a[b++]),this.pa=ef(this,a[b++]),this.ka=ef(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.V=a[b][1],this.ca|=a[b][2]);a[4]&&(this.I=a[4]);return!0};m.start=function(a,b){this.P||this.u("running");this.A.O=!0;this.Ka=a;this.Oa=b};
m.stop=function(a,b){if(this.A.O){this.A.O=!1;this.C=b-this.Oa;if(!this.P){b="stopped";if(this.C){a-=this.Ka;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";td(this)&&(b+=this.oa+" instructions, ",this.oa=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);Bf(this,this.v.i);this.ba=null}};function td(a){return 1<a.b.length||!!a.qa}
function ud(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ea==b&&(b=sd(a.v,1)));if(0<c&&(a.qa&&!--a.qa||Xc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.oa++,0>d&&(d=a.v.f(b)),0<=d&&(cf(a.i[a.X],b),++a.X==a.i.length&&(a.X=0)));return!1}
function Cf(a,b,c,d){var e=Z(b.B),f=a.Ma(b,1),g,h,k,l=0,p=f/Yb|0,u;for(u in Df)if(g=Df[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Ef;l=p&3;break;case 32256:k=Ff;l=p&7;break;case 29248:k=Gf,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Hf&&(k="B");k=If[g||0]+k;if(g){if(28700==h)h=f/Zb&127,l=K(a,h,-1);else for(h=f>>23&15,l=K(a,h,-1),p=0;l&&p<Jf.length;p++)if(g==Jf[p][0]&&(u=Jf[p][h])){k=If[u];l="";break}k=Ba(k,8)+(l?l+",":"");f&4194304&&(k+="@");k+=K(a,f&262143,-1);(f=f>>18&15)&&(k+="("+K(a,f,
-1)+")")}else k=Ba(k,8)+kf(a,f);f=k;g="";h=K(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Ma(e,1),g+=" "+kf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Va?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ga)):h+(null!=d?"="+d.toString():""));return h}
function Kf(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),l=0;l<Jf.length;l++)for(var p in Jf[l])if(+p&&(h=Jf[l][p],k==If[h])){k=If[Jf[l][0]];c&&(c=K(a,+p)+","+c);break}for(var u in Df){g=+u;p=Df[u];switch(g){case 32512:l=Ef;break;case 32256:l=Ff;break;case 29248:l=Gf;break;default:l=[""]}for(var D in p){h=p[D];for(var H=0;H<l.length;H++){var P=l[H];"S"==P&&h>Hf&&(P="B");if(k==If[h]+P){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(D|f<<6)*Yb;break}}if(0<=f)break}if(0<=f)break}0>f&&c&&!c.match(/^[0-9A-Z$%.?]/i)&&
function Cf(a,b,c,d){var e=Z(b.B),f=a.Na(b,1),g,h,k,l=0,p=f/Yb|0,u;for(u in Df)if(g=Df[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Ef;l=p&3;break;case 32256:k=Ff;l=p&7;break;case 29248:k=Gf,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Hf&&(k="B");k=If[g||0]+k;if(g){if(28700==h)h=f/Zb&127,l=K(a,h,-1);else for(h=f>>23&15,l=K(a,h,-1),p=0;l&&p<Jf.length;p++)if(g==Jf[p][0]&&(u=Jf[p][h])){k=If[u];l="";break}k=Ba(k,8)+(l?l+",":"");f&4194304&&(k+="@");k+=K(a,f&262143,-1);(f=f>>18&15)&&(k+="("+K(a,f,
-1)+")")}else k=Ba(k,8)+kf(a,f);f=k;g="";h=K(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Na(e,1),g+=" "+kf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Va?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ga)):h+(null!=d?"="+d.toString():""));return h}
function Kf(a,b,c,d,e){var f=-1,g,h;a.la=null;if(b){for(var k=b.toUpperCase(),l=0;l<Jf.length;l++)for(var p in Jf[l])if(+p&&(h=Jf[l][p],k==If[h])){k=If[Jf[l][0]];c&&(c=K(a,+p)+","+c);break}for(var u in Df){g=+u;p=Df[u];switch(g){case 32512:l=Ef;break;case 32256:l=Ff;break;case 29248:l=Gf;break;default:l=[""]}for(var D in p){h=p[D];for(var H=0;H<l.length;H++){var P=l[H];"S"==P&&h>Hf&&(P="B");if(k==If[h]+P){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(D|f<<6)*Yb;break}}if(0<=f)break}if(0<=f)break}0>f&&c&&!c.match(/^[0-9A-Z$%.?]/i)&&
(c=b+c,b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),u=0;u<k.length;u++)if(h=k[u].trim()){if(1<u){a.u("too many operands: "+c);f=-1;break}D=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!D){a.u("unknown operand: "+h);f=-1;break}D[1]&&(f+=4194304);if(h=D[3]){h=Ue(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=15;f+=h<<18}h=D[2];if(u||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+K(a,d,18)):"0";h=Ue(a,h,e);if(void 0==h){f=-1;break}if(!u&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Zb}else{if(0>
h||15<h)h&=15;f+=h<<23}else{if(b||u)if(0>h||262143<h)h&=Sb;f+=h}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Ze(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=bf(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=bf(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.Da=0;a.qa=0}
m.Ra=function(a,b,c){var d=!0;c||Lf(this,a,b,!1,!0);if(a!=this.b){var e=bf(b);if(-1===e)this.u("invalid address: "+K(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.ra=!0:(Mf(this,a,a.length-1,"set"),$e(this)));return d};function Lf(a,b,c,d,e){var f=!1;c=bf(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==bf(h)&&(!d||h.ra)){f=!0;h.ra||e||Mf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.K));h.ra||$e(a);break}}return f}
function mg(a,b){for(var c=1;c<b.length;c++)Mf(a,b,c);return b.length-1}function Mf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.hb?' "'+c.hb+'"':""))}function Bf(a,b){if(void 0!==b)Xc(a,b,1,a.b,!0),a.P=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ra){if(!Lf(a,a.b,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.Da++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ra)for(var k=bf(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Lf(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,u=0;u<p.length;u++)if(!og(a,p[u],!0)){if(p[u].indexOf("if")){f=!0;break}for(var D=u+1;D<p.length&&p[D].indexOf("else");D++)u++;if(D==p.length){f=!0;break}}a.v.A.O||(f=!0)}if(f){e||Mf(a,d,g,"hit");break}}}a.Da--;return f}
function pg(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=ua(d,2);cf(e.Ia,d);f+="="+K(e,e.Ma(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<lf.length;d++)(e=lf[d]||"")&&(e+="="+K(a,a.ub(d),d>=qf?1:d==nf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function De(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,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],u=Fa(p,k,a.Gb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.F.push({wd:b,B:c,Ub:d,Y:e,Bb:f})}function qg(a,b,c){var d=[],e=bf(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.Ub;if(e>=g&&e<g+h){e=Fa(f.Bb,[e-g],a.Gb);0<=e?rg(a,b,e,d):c&&(e=~e,rg(a,b,e-1,d),rg(a,b,e,d));break}}return d}
function sg(a,b,c){var d=a.G,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(a.u(e+" words loaded at "+K(a,f)+"-"+K(a,g)),null!=c&&G(a.v,c),cd(a)):a.u("no data")}function rg(a,b,c,d){var e={},f=a.F[b].Bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].Y[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function tg(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=gf(a,d,a.ja);if(!e)return a.u("begin assemble at "+K(a,f.B,18)),a.V=!0,J(a.H),!0;var g=e.match(/^(['"]?)(.*\.mac|.*\.html|.*\.txt)\1$/i);if(g){f=gf(a,d);if(a.Ca)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.Ca=new ug(h,k,c,a,function(b,c){if(!b)try{var d=l.G;null==d&&(d=k);sg(a,l.R,d)}catch(H){"number"==typeof H?b=H||-1:(a.u(H.message),b=-1)}b&&a.u("error ("+b+") processing "+(c||h));
a.Ca=null;b||ed(a)});return!1}b.shift();b.shift();b.shift();b=Kf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Cf(a,f)));return!0}function vg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Xe(a)||a.u("no variables"),!0;if(!c[2])return Xe(a,c[1]);if(!c[3])return delete a.I[c[1]],!0;b=Ue(a,c[3]);return void 0!==b?(a.I[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
m.Sa=function(a,b,c){var d=!0;c||Lf(this,a,b,!1,!0);if(a!=this.b){var e=bf(b);if(-1===e)this.u("invalid address: "+K(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Sa(e&16383,a==this.K)}}d&&(a.push(b),c?b.ra=!0:(Mf(this,a,a.length-1,"set"),$e(this)));return d};function Lf(a,b,c,d,e){var f=!1;c=bf(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==bf(h)&&(!d||h.ra)){f=!0;h.ra||e||Mf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.K));h.ra||$e(a);break}}return f}
function Nf(a,b){for(var c=1;c<b.length;c++)Mf(a,b,c);return b.length-1}function Mf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.hb?' "'+c.hb+'"':""))}function Bf(a,b){if(void 0!==b)Xc(a,b,1,a.b,!0),a.P=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ra){if(!Lf(a,a.b,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.Da++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ra)for(var k=bf(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Lf(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,u=0;u<p.length;u++)if(!ng(a,p[u],!0)){if(p[u].indexOf("if")){f=!0;break}for(var D=u+1;D<p.length&&p[D].indexOf("else");D++)u++;if(D==p.length){f=!0;break}}a.v.A.O||(f=!0)}if(f){e||Mf(a,d,g,"hit");break}}}a.Da--;return f}
function pg(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=ua(d,2);cf(e.Ia,d);f+="="+K(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<lf.length;d++)(e=lf[d]||"")&&(e+="="+K(a,a.ub(d),d>=qf?1:d==nf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function De(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,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],u=Fa(p,k,a.Gb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({wd:b,B:c,Ub:d,Y:e,Bb:f})}function qg(a,b,c){var d=[],e=bf(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.B>>>0,h=f.Ub;if(e>=g&&e<g+h){e=Fa(f.Bb,[e-g],a.Gb);0<=e?rg(a,b,e,d):c&&(e=~e,rg(a,b,e-1,d),rg(a,b,e,d));break}}return d}
function sg(a,b,c){var d=a.G,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(a.u(e+" words loaded at "+K(a,f)+"-"+K(a,g)),null!=c&&G(a.v,c),cd(a)):a.u("no data")}function rg(a,b,c,d){var e={},f=a.I[b].Bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].Y[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function tg(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=gf(a,d,a.ka);if(!e)return a.u("begin assemble at "+K(a,f.B,18)),a.V=!0,J(a.H),!0;var g=e.match(/^(['"]?)(.*\.klm|.*\.mac|.*\.html|.*\.txt)\1$/i);if(g){f=gf(a,d);if(a.Ca)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.Ca=new ug(h,k,c,a,function(b,c){if(!b)try{var d=l.G;null==d&&(d=k);sg(a,l.R,d)}catch(H){"number"==typeof H?b=H||-1:(a.u(H.message),b=-1)}b&&a.u("error ("+b+") processing "+
(c||h));a.Ca=null;b||ed(a)});return!1}b.shift();b.shift();b.shift();b=Kf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Cf(a,f)));return!0}function vg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Xe(a)||a.u("no variables"),!0;if(!c[2])return Xe(a,c[1]);if(!c[3])return delete a.F[c[1]],!0;b=Ue(a,c[3]);return void 0!==b?(a.F[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function wg(a,b,c){var d=null;b=gf(a,b);var e=qg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+K(a,e[1],18)+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+n(f,4,!0)),f=e[4]+" ("+K(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
function zf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\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.u("missing value for "+b[1]);return}g=Ue(a,b);if(void 0===g)return;b=a.tb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case mf:G(h,
g);cf(a.M,h.i);break;case pf:rd(h,g);break;case qf:f=131072;break;case rf:f=65536;break;case sf:f=32768;break;case tf:f=32;break;case uf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);J(a.H);a.u("updated registers:")}}a.u(pg(a,e));c&&(cf(a.M,0<=d.P?d.P:d.i),Af(a,K(a,a.M.B,18)))}}function xg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Ve(a,null,c[2].charCodeAt(0)):Ue(a,b,!1)}
function yg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Qe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Fa=b;Ua(c,function(){return Ob(a,!0)&&tc(a,e,d,!1)},function(){a.na&&a.na.stop();J(a.H,-1);Ob(a,!1)})}}
function Af(a,b,c,d){b=gf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Qe(a,c.substr(1)),null!=c&&(d=c);else{d=gf(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.P?a.C:null,g=null!=f?"cycles":null,h=qg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ja;l=b;h.B=l.B;h.eb=l.eb;h.ra=l.ra;h.T=l.T;a.u(Cf(a,b,g,f));e-=b.B-k;c++}}
function og(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(yf+b):(a.V&&(a.u("ended assemble at "+K(a,a.ja.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ba=null;if(Bb(a)&&0<b.length){a.V&&(b="a "+K(a,a.ja.B,18)+" "+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),l=1;l<h.length;l++){var p=h.charAt(l);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(l);g.unshift(h.substr(0,l));break}}switch(g[0].charAt(0)){case "a":d=
tg(a,g);break;case "b":var u=g[0],D=g[1],H=b;if("?"==D)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var P=u.charAt(1);if("l"==P){var fb;fb=0+mg(a,a.b);fb+=mg(a,a.N);(fb+=mg(a,a.K))||a.u("no breakpoints")}else if("n"==P){var Ab=+D||0;D&&(a.qa=Ab);a.u("break after "+Ab+" instruction(s)")}else if(void 0===
D)a.u("missing breakpoint address");else{var I="*"==D?Z():gf(a,D,a.M);"c"==P?null==I.B?(Ze(a),a.u("all breakpoints cleared")):Lf(a,a.b,I)||Lf(a,a.N,I)||Lf(a,a.K,I)||a.u("breakpoint missing: "+K(a,I.B,18)):null!=I.B&&(jf(a,I,H),"p"==P?a.Ra(a.b,I):"r"==P?a.Ra(a.N,I):"w"==P?a.Ra(a.K,I):a.u("unknown breakpoint command: "+P))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var gb,hb=g[0],oa=g[1],Da=g[2],Fh=g[3];if("?"==oa){var ib="";for(gb in bc)a.xa[gb]&&(ib&&(ib+=","),ib+=gb);ib+=",state,symbols";
a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");ib.length&&a.u("dump extension commands:\n\t"+ib)}else if("state"==oa){var Ld=zg(a.H,!0);"console"==Da?console.log(Ld):(a.za&&(a.za.value=""),Ld&&a.u(Ld))}else if("symbols"==oa)for(var Md=0;Md<a.F.length;Md++){var Nd=a.F[Md],jb;for(jb in Nd.Y)if("."!=jb.charAt(0)){var Nf=Nd.Y[jb].o;if(void 0!==Nf){var Of=
Nd.Y[jb].l;Of&&(jb=Of);a.u(K(a,Nf,18)+" "+jb)}}}else{if("d"==hb){for(gb in bc)if(g[1]==gb){var Pf=a.xa[gb];Pf?(g.shift(),g.shift(),Pf(g)):a.u("no dump registered for "+oa);break a}oa||(hb=a.Oa||"dw")}else a.Oa=hb;if("dh"==hb){var Qf=oa,Rf=Da,Sf="",Tf=0,ja=a.X,pa=a.i;if(pa.length){var ea=+Qf||a.Ea,Cb=+Rf||10;isNaN(ea)?ea=Cb:Sf="more ";ea>pa.length&&(a.u("note: only "+pa.length+" available"),ea=pa.length);ja-=ea;0>ja&&(null==pa[pa.length-1].B?(ea=ja+ea,ja=0):ja+=pa.length);var Od=[];"call"==Rf&&(Cb=
1E5,Od=["CALL"]);for(void 0!==Qf&&a.u(ea+" instructions earlier:");0<Cb&&ja!=a.X;){var Uf=pa[ja++];if(null==Uf.B)break;var Db=Z(Uf.B),Gh=ea--,Vf=Cf(a,Db,"history",Gh);(!Od.length||0<=Vf.indexOf(Od[0]))&&a.u(Vf);Db.rb&&(ja+=Db.rb,Cb-=Db.rb,ea-=Db.rb);ja>=pa.length&&(ja=0);a.Ea=ea;Tf++;Cb--}}Tf||(a.u("no "+Sf+"history available"),a.Ea=void 0)}else{var Ma=0,Wf="ds"==hb,Eb=gf(a,oa,a.pa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Fh,Ma=Qe(a,Da)):Ma=gf(a,Da).B-Eb.B,0>Ma&&(Ma=0),65536<Ma&&(Ma=65536));var Hh=
a.T;Eb.T&&(a.T=Eb.T);for(var Xf="db"==hb?1:2,Pd=Ma||32,Qd=1==Xf?1:4,Ih=(Pd+Qd-1)/Qd|0||1,Na="";Ih--&&0<Pd;){for(var qa="",Rd="",oa=K(a,Eb.B,18),Yf=Qd;0<Yf--&&0<Pd--;){var Sd=a.Ma(Eb,1);Wf?(qa&&(qa+=","),qa+=Sd):(qa+=kf(a,Sd),qa+=" ");for(var Ic=29,Jh=0;1==Xf&&0<=Ic;Jh++)var Fb=Sd/Math.pow(2,Ic)%Math.pow(2,7),qa=qa+(K(a,Fb,7)+" "),Fb=Fb+0,Rd=Rd+(32>Fb?".":String.fromCharCode(Fb)),Ic=Ic-7}Na&&(Na+="\n");Na=Wf?Na+(qa+","):Na+(oa+": "+qa+(0>Yf?" "+Rd:""))}Na&&a.u(Na);a.T=Hh}}}break;case "e":if("else"==
g[0])break;var Zf,$f,ag=g[0],Td=g[1];"e"==ag||"ew"==ag?(Zf=a.Ma,$f=a.yb):Td=null;if(null==Td)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Ud=gf(a,Td,a.pa),Vd=2;Vd<g.length;Vd++){var Gb=Ue(a,g[Vd]);if(void 0===Gb)break;Gb=hf(Gb);a.u("changing "+K(a,Ud.B,18)+" from "+kf(a,Zf.call(a,Ud))+" to "+kf(a,Gb));$f.call(a,Ud,Gb,1)}break;case "g":var bg=g[1],Kh=b;if(void 0!==bg){var cg=gf(a,bg);jf(a,cg,Kh);a.Ra(a.b,cg,!0)}wf(a,!0,c);break;case "h":a.A.O?(c||a.u("halting"),
a.W()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Wd;var Hb=b.substr(2),Hb=Ca(Hb);Ue(a,Hb)?(c||a.u("true: "+Hb),Wd=!0):(c||a.u("false: "+Hb),Wd=!1);Wd||(d=!1);break}f=!0;break;case "k":var Lh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Xd=0,Yd=Z(),Ib=Z();for(a.u("stack trace for "+K(a,Ib.B,18));10>Xd;){for(var Oa=null,Mh=256;65536>Ib.B>>>0;){Yd.B=a.Ma(Ib,2);if(null==Ib.B||!Mh--)break;if(!(Yd.B&
1)){for(var Nh=a,Jc=Yd,dg=null,Jb=Jc.B,eg=Jb,Zd=1;6>=Zd&&Jb;Zd++){if(2<Zd){Jc.B=Jb;var Kc=Cf(Nh,Jc);if(0<=Kc.indexOf("JSR")){var fg=Kc.indexOf(" ");if(Jb+(Kc.indexOf(" ",fg+1)-fg-1)/2==eg){dg=Kc;break}}}Jb-=2}Jc.B=eg;if(Oa=dg)break}}if(!Oa||null==Oa)break;var gg=null;if("ks"==Lh){var hg=Oa.match(/[0-9A-F]+$/);hg&&(gg=wg(a,hg[0]))}Oa=Ba(Oa,50)+" ;"+(gg||"stack="+K(a,Ib.B,18));a.u(Oa);Xd++}Xd||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){wg(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,
sa=null,M=g[1];"?"==M&&(M=void 0);if(void 0!==M){var Ea=0;if("all"==M)Ea=1879046143,M=null;else if("on"==M)sa=!0,M=null;else if("off"==M)sa=!1,M=null;else{"keys"==M&&(M="key");"kbd"==M&&(M="keyboard");for(ra in bc)if(M==ra){Ea=bc[ra];sa=!!(a.ca&Ea);break}if(!Ea){a.u("unknown message category: "+M);break a}}if(Ea)if("on"==g[2])a.ca|=Ea,sa=!0;else if("off"==g[2]&&(a.ca&=~Ea,sa=!1,1073741824==Ea)){for(var ig=1E3<=a.S.length?a.S.length-1E3:0;ig<a.S.length;)a.u(a.S[ig++]);a.S=[]}}var Oh=0,Kb="";for(ra in bc)if(!M||
M==ra){var Ph=!!(a.ca&bc[ra]);if(null===sa||sa==Ph)Kb&&(Kb+=","),++Oh%10||(Kb+="\n\t"),"key"==ra&&(ra="keys"),Kb+=ra}void 0===M&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Kb||"none"));$e(a)}break;case "p":if("print"==g[0]){xg(a,b.substr(5));break}var jg=g[0],kg="p"==jg?0:"pr"==jg?1:-1;if("?"==g[1]||0>kg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");
else if(a.P)a.u("step in progress");else{var lg=Z(a.v.i);a.Ma(lg);a.P?(a.Ra(a.b,lg,!0),wf(a)||(a.H&&jd(a.H),a.P=0)):yg(a,kg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}zf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var kb=+g[2];if(2==kb||8==kb||10==kb||16==kb)a.T=kb;else{a.u("invalid base: "+kb);break}}a.u("default base: "+a.T);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.oa=Lb;break;case "start":a.v.Ha=Lb;break;case "stop":a.v.qa=Lb;
break;default:a.u("unknown cs option");break a}void 0!==Lb&&bd(a.v);a.u("checksums "+(a.v.A.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ia.toFixed(2)+"Mhz")+" ("+a.v.ja+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),
function Af(a,b,c,d){b=gf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Qe(a,c.substr(1)),null!=c&&(d=c);else{d=gf(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.P?a.C:null,g=null!=f?"cycles":null,h=qg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ka;l=b;h.B=l.B;h.eb=l.eb;h.ra=l.ra;h.T=l.T;a.u(Cf(a,b,g,f));e-=b.B-k;c++}}
function ng(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(yf+b):(a.V&&(a.u("ended assemble at "+K(a,a.ka.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ba=null;if(Bb(a)&&0<b.length){a.V&&(b="a "+K(a,a.ka.B,18)+" "+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),l=1;l<h.length;l++){var p=h.charAt(l);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(l);g.unshift(h.substr(0,l));break}}switch(g[0].charAt(0)){case "a":d=
tg(a,g);break;case "b":var u=g[0],D=g[1],H=b;if("?"==D)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var P=u.charAt(1);if("l"==P){var fb;fb=0+Nf(a,a.b);fb+=Nf(a,a.N);(fb+=Nf(a,a.K))||a.u("no breakpoints")}else if("n"==P){var Ab=+D||0;D&&(a.qa=Ab);a.u("break after "+Ab+" instruction(s)")}else if(void 0===
D)a.u("missing breakpoint address");else{var I="*"==D?Z():gf(a,D,a.M);"c"==P?null==I.B?(Ze(a),a.u("all breakpoints cleared")):Lf(a,a.b,I)||Lf(a,a.N,I)||Lf(a,a.K,I)||a.u("breakpoint missing: "+K(a,I.B,18)):null!=I.B&&(jf(a,I,H),"p"==P?a.Sa(a.b,I):"r"==P?a.Sa(a.N,I):"w"==P?a.Sa(a.K,I):a.u("unknown breakpoint command: "+P))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var gb,hb=g[0],oa=g[1],Da=g[2],Gh=g[3];if("?"==oa){var ib="";for(gb in bc)a.xa[gb]&&(ib&&(ib+=","),ib+=gb);ib+=",state,symbols";
a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");ib.length&&a.u("dump extension commands:\n\t"+ib)}else if("state"==oa){var Ld=zg(a.H,!0);"console"==Da?console.log(Ld):(a.za&&(a.za.value=""),Ld&&a.u(Ld))}else if("symbols"==oa)for(var Md=0;Md<a.I.length;Md++){var Nd=a.I[Md],jb;for(jb in Nd.Y)if("."!=jb.charAt(0)){var Of=Nd.Y[jb].o;if(void 0!==Of){var Pf=
Nd.Y[jb].l;Pf&&(jb=Pf);a.u(K(a,Of,18)+" "+jb)}}}else{if("d"==hb){for(gb in bc)if(g[1]==gb){var Qf=a.xa[gb];Qf?(g.shift(),g.shift(),Qf(g)):a.u("no dump registered for "+oa);break a}oa||(hb=a.Pa||"dw")}else a.Pa=hb;if("dh"==hb){var Rf=oa,Sf=Da,Tf="",Uf=0,ja=a.X,pa=a.i;if(pa.length){var fa=+Rf||a.Ea,Cb=+Sf||10;isNaN(fa)?fa=Cb:Tf="more ";fa>pa.length&&(a.u("note: only "+pa.length+" available"),fa=pa.length);ja-=fa;0>ja&&(null==pa[pa.length-1].B?(fa=ja+fa,ja=0):ja+=pa.length);var Od=[];"call"==Sf&&(Cb=
1E5,Od=["CALL"]);for(void 0!==Rf&&a.u(fa+" instructions earlier:");0<Cb&&ja!=a.X;){var Vf=pa[ja++];if(null==Vf.B)break;var Db=Z(Vf.B),Hh=fa--,Wf=Cf(a,Db,"history",Hh);(!Od.length||0<=Wf.indexOf(Od[0]))&&a.u(Wf);Db.rb&&(ja+=Db.rb,Cb-=Db.rb,fa-=Db.rb);ja>=pa.length&&(ja=0);a.Ea=fa;Uf++;Cb--}}Uf||(a.u("no "+Tf+"history available"),a.Ea=void 0)}else{var Ma=0,Xf="ds"==hb,Eb=gf(a,oa,a.pa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Gh,Ma=Qe(a,Da)):Ma=gf(a,Da).B-Eb.B,0>Ma&&(Ma=0),65536<Ma&&(Ma=65536));var Ih=
a.T;Eb.T&&(a.T=Eb.T);for(var Yf="db"==hb?1:2,Pd=Ma||32,Qd=1==Yf?1:4,Jh=(Pd+Qd-1)/Qd|0||1,Na="";Jh--&&0<Pd;){for(var qa="",Rd="",oa=K(a,Eb.B,18),Zf=Qd;0<Zf--&&0<Pd--;){var Sd=a.Na(Eb,1);Xf?(qa&&(qa+=","),qa+=Sd):(qa+=kf(a,Sd),qa+=" ");for(var Ic=29,Kh=0;1==Yf&&0<=Ic;Kh++)var Fb=Sd/Math.pow(2,Ic)%Math.pow(2,7),qa=qa+(K(a,Fb,7)+" "),Fb=Fb+0,Rd=Rd+(32>Fb?".":String.fromCharCode(Fb)),Ic=Ic-7}Na&&(Na+="\n");Na=Xf?Na+(qa+","):Na+(oa+": "+qa+(0>Zf?" "+Rd:""))}Na&&a.u(Na);a.T=Ih}}}break;case "e":if("else"==
g[0])break;var $f,ag,bg=g[0],Td=g[1];"e"==bg||"ew"==bg?($f=a.Na,ag=a.yb):Td=null;if(null==Td)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Ud=gf(a,Td,a.pa),Vd=2;Vd<g.length;Vd++){var Gb=Ue(a,g[Vd]);if(void 0===Gb)break;Gb=hf(Gb);a.u("changing "+K(a,Ud.B,18)+" from "+kf(a,$f.call(a,Ud))+" to "+kf(a,Gb));ag.call(a,Ud,Gb,1)}break;case "g":var cg=g[1],Lh=b;if(void 0!==cg){var dg=gf(a,cg);jf(a,dg,Lh);a.Sa(a.b,dg,!0)}wf(a,!0,c);break;case "h":a.A.O?(c||a.u("halting"),
a.W()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Wd;var Hb=b.substr(2),Hb=Ca(Hb);Ue(a,Hb)?(c||a.u("true: "+Hb),Wd=!0):(c||a.u("false: "+Hb),Wd=!1);Wd||(d=!1);break}f=!0;break;case "k":var Mh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Xd=0,Yd=Z(),Ib=Z();for(a.u("stack trace for "+K(a,Ib.B,18));10>Xd;){for(var Oa=null,Nh=256;65536>Ib.B>>>0;){Yd.B=a.Na(Ib,2);if(null==Ib.B||!Nh--)break;if(!(Yd.B&
1)){for(var Oh=a,Jc=Yd,eg=null,Jb=Jc.B,fg=Jb,Zd=1;6>=Zd&&Jb;Zd++){if(2<Zd){Jc.B=Jb;var Kc=Cf(Oh,Jc);if(0<=Kc.indexOf("JSR")){var gg=Kc.indexOf(" ");if(Jb+(Kc.indexOf(" ",gg+1)-gg-1)/2==fg){eg=Kc;break}}}Jb-=2}Jc.B=fg;if(Oa=eg)break}}if(!Oa||null==Oa)break;var hg=null;if("ks"==Mh){var ig=Oa.match(/[0-9A-F]+$/);ig&&(hg=wg(a,ig[0]))}Oa=Ba(Oa,50)+" ;"+(hg||"stack="+K(a,Ib.B,18));a.u(Oa);Xd++}Xd||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){wg(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,
sa=null,M=g[1];"?"==M&&(M=void 0);if(void 0!==M){var Ea=0;if("all"==M)Ea=1879046143,M=null;else if("on"==M)sa=!0,M=null;else if("off"==M)sa=!1,M=null;else{"keys"==M&&(M="key");"kbd"==M&&(M="keyboard");for(ra in bc)if(M==ra){Ea=bc[ra];sa=!!(a.ca&Ea);break}if(!Ea){a.u("unknown message category: "+M);break a}}if(Ea)if("on"==g[2])a.ca|=Ea,sa=!0;else if("off"==g[2]&&(a.ca&=~Ea,sa=!1,1073741824==Ea)){for(var jg=1E3<=a.S.length?a.S.length-1E3:0;jg<a.S.length;)a.u(a.S[jg++]);a.S=[]}}var Ph=0,Kb="";for(ra in bc)if(!M||
M==ra){var Qh=!!(a.ca&bc[ra]);if(null===sa||sa==Qh)Kb&&(Kb+=","),++Ph%10||(Kb+="\n\t"),"key"==ra&&(ra="keys"),Kb+=ra}void 0===M&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Kb||"none"));$e(a)}break;case "p":if("print"==g[0]){xg(a,b.substr(5));break}var kg=g[0],lg="p"==kg?0:"pr"==kg?1:-1;if("?"==g[1]||0>lg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");
else if(a.P)a.u("step in progress");else{var mg=Z(a.v.i);a.Na(mg);a.P?(a.Sa(a.b,mg,!0),wf(a)||(a.H&&jd(a.H),a.P=0)):yg(a,lg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}zf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var kb=+g[2];if(2==kb||8==kb||10==kb||16==kb)a.T=kb;else{a.u("invalid base: "+kb);break}}a.u("default base: "+a.T);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.oa=Lb;break;case "start":a.v.Ha=Lb;break;case "stop":a.v.qa=Lb;
break;default:a.u("unknown cs option");break a}void 0!==Lb&&bd(a.v);a.u("checksums "+(a.v.A.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ja.toFixed(2)+"Mhz")+" ("+a.v.ka+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),
a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":yg(a,g[0],g[1]);break;case "u":Af(a,g[1],g[2],8);break;case "v":if("var"==g[0]){vg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.mb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){xg(a,b.substr(1));break}var $d="commands:",ae;for(ae in Ag)$d+="\n"+Ba(ae,9)+Ag[ae];td(a)||($d+="\nnote: history disabled if no exec breakpoints");
a.u($d);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(ng){a.u("Debugger "+(ng.stack||ng.message)),d=!1}return d}function ed(a,b,c){null!=b&&(a.Ha=Ke(a,b,c));for(;b=a.Ha.shift();)if(!og(a,b))return!1;return!0}
a.u($d);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(og){a.u("Debugger "+(og.stack||og.message)),d=!1}return d}function ed(a,b,c){null!=b&&(a.Ha=Ke(a,b,c));for(;b=a.Ha.shift();)if(!ng(a,b))return!1;return!0}
var Ag={"?":"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"},Hf=20,If=".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(" "),
mf=0,nf=1,of=2,pf=3,qf=4,rf=5,sf=6,tf=7,uf=8,lf="PC RA EA PS OV C0 C1 ND PD".split(" "),Bg={},Df=(Bg[28672]={0:101},Bg[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},Bg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Hf,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},Bg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Bg[29248]={24576:79,24640:80,25088:81,25152:82},Bg[28700]={28672:93,28676:94,28680:95,28684:96,
28688:97,28692:98,28696:99,28700:100},Bg),Ef=["","I","M","S"],Ff=" L E LE A GE N G".split(" "),Gf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Jf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],vf=1E3,yf=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ye(d);sb(d,c)}});
function ug(a,b,c,d,e){this.la=b;this.ba=c||"";this.b=d;this.done=e;this.G=null;this.j={};this.N={};this.M=[];this.L=[];this.R=[];this.fa=[];this.V=this.U=this.da=0;this.Z=this.la||0;this.wa=-1;this.w=[];this.K=null;this.i=0;this.I=null;this.J=this.F="";this.X=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.D=this.v=null;this.C="";this.H=[];this.S=0;this.P=a.split(";");Cg(this)}
function ug(a,b,c,d,e){this.ma=b;this.ba=c||"";this.b=d;this.done=e;this.G=null;this.v={};this.L={};this.N=[];this.M=[];this.R=[];this.fa=[];this.V=this.U=this.da=0;this.Z=this.ma||0;this.wa=-1;this.w=[];this.K=null;this.i=0;this.I=null;this.J=this.F="";this.X=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.D=this.j=null;this.C="";this.H=[];this.S=0;this.P=a.split(";");Cg(this)}
function Cg(a){if(a.S==a.P.length)a.done(Dg(a));else{var b=a.P[a.S++];a.u("loading "+wa(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ha(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(ya(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Eg(a,"unrecognized HTML entity: "+c[0])}a.H=a.H.concat(e.split(/(\r?\n)/));
setTimeout(function(){Cg(a)},0)}})}}
function Dg(a){if(0<=a.ba.indexOf("p"))return a.u(a.H.join("")),0;var b=We(a.b);try{for(var c=0;c<a.H.length;c+=2){a.da++;if(!Fg(a,a.H[c]+"\r\n"))break;if(null!==a.G)break}a.i&&a.error("open block from line "+a.j[a.I].da);a.w.length&&a.error("open scope from line "+a.w[0].da);for(var d=a.Z,c={},e=0;e<a.M.length;c={R:c.R,Ta:c.Ta,Aa:c.Aa},e++){c.Aa=a.M[e];c.R=[];c.Ta=0;c.Aa.R.forEach(function(a){return function(b,c){c===a.R.length&&a.R.push(b);a.Ta++}}(c));if(c.Ta==c.R.length)for(var f=d;f+c.Ta<=a.Z;f++){for(var g=
void 0,g=0;g<c.Ta&&c.R[g]===a.R[f+g]&&c.Aa.fa[g]==a.fa[f];g++);if(g==c.Ta){Gg(a,c.Aa.name,f,Hg);c.Aa=null;break}}c.Aa&&(Gg(a,c.Aa.name,a.Z,Hg),c.Aa.R.forEach(function(b){return function(c,d){Ig(a,c,b.Aa.fa[d])}}(c)))}for(d=0;d<a.L.length;d++){var h=a.L[d],k=a.j[h];k?Jg(a,k.ma):a.error("missing definition for variable: "+h)}a.fa.forEach(function(b,c){var d=Kg(a,b,void 0,c);void 0===d?a.error("unable to parse expression: "+b):(d+=a.R[c],a.R[c]=Lg(a,d,c))})}catch(l){a.u(l.message),a.U=-1}a.b.I=b;return a.U}
function Dg(a){if(0<=a.ba.indexOf("p"))return a.u(a.H.join("")),0;var b=We(a.b);try{for(var c=0;c<a.H.length;c+=2){a.da++;if(!Fg(a,a.H[c]+"\r\n"))break;if(null!==a.G)break}a.i&&a.error("open block from line "+a.v[a.I].da);a.w.length&&a.error("open scope from line "+a.w[0].da);for(var d=a.Z,c={},e=0;e<a.N.length;c={R:c.R,Ta:c.Ta,Aa:c.Aa},e++){c.Aa=a.N[e];c.R=[];c.Ta=0;c.Aa.R.forEach(function(a){return function(b,c){c===a.R.length&&a.R.push(b);a.Ta++}}(c));if(c.Ta==c.R.length)for(var f=d;f+c.Ta<=a.Z;f++){for(var g=
void 0,g=0;g<c.Ta&&c.R[g]===a.R[f+g]&&c.Aa.fa[g]==a.fa[f];g++);if(g==c.Ta){Gg(a,c.Aa.name,f,Hg);c.Aa=null;break}}c.Aa&&(Gg(a,c.Aa.name,a.Z,Hg),c.Aa.R.forEach(function(b){return function(c,d){Ig(a,c,b.Aa.fa[d])}}(c)))}for(d=0;d<a.M.length;d++){var h=a.M[d],k=a.v[h];k?Jg(a,k.ia):a.error("missing definition for variable: "+h)}a.fa.forEach(function(b,c){var d=Kg(a,b,void 0,c);void 0===d?a.error("unable to parse expression: "+b):(d+=a.R[c],a.R[c]=Lg(a,d,c))})}catch(l){a.u(l.message),a.U=-1}a.b.F=b;return a.U}
function Fg(a,b,c,d,e){var f;if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.K+" definition: "+b)),1<a.i&&(b=Mg(a,b)),a.i))return!0;null!=a.D&&(b=Ng(a,b));var g=!0;f="";for(var h;g;){h=b.match(a.X);if(!h||h[5]&&";"!=h[5].slice(0,1))return a.error("failed to parse line: "+b),!1;g=!1;f=h[2].toUpperCase();if(f==Og||f==Pg)c=null;if(c){for(var k=0;k<c.length;k++)for(var l=c[k],p=d[k]||e[k]||"",u=0,D=b.length-h[5].length;u<D;){var H=b.indexOf(l,u);if(0>H)break;var u=
H+1,P=H+l.length,fb="",Ab="";H&&(fb=b[H-1]).match(/[0-9A-Z$%.]/i)||!(P>=b.length)&&(Ab=b[P]).match(/[0-9A-Z$%.]/i)||("'"==fb&&H--,"'"==Ab&&P++,b=b.substr(0,H)+p+b.substr(P),u=H+p.length,g=!0)}c=null}}d=h[1];c=h[3];b=h[4].trim();h=h[4]+h[5];d&&(d=d.slice(0,-1),Gg(a,d,a.Z,Hg));var I;f&&(I=b.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=I[1],b=I[2],"=="==f?e|=Qg:"=:"==f&&(e|=Rg),Gg(a,d,b,e),f=b="");if(!f&&!b)return!0;a.K=f;for((I=Sg(a,b))&&(b=b.replace(I,Tg(a,Ug,Sg(a,h))));I=Vg(a,b);)b=b.replace(I,I.slice(0,-1));
if(!Wg(a,f,b))switch(f){case Xg:case Yg:case Zg:Ng(a,h);break;case $g:(f=b)?(a.G=Kg(a,f,!0),void 0===a.G&&a.error("unrecognized expression: "+f)):a.G=a.la;break;case ah:bh(a,b);break;case ch:a.Z=Kg(a,b)||0;break;case dh:bh(a,b.replace(",",",,"));break;case eh:case fh:case gh:case hh:case ih:case Og:case Pg:case jh:case kh:Tg(a,f,h);break;case lh:case mh:case nh:case oh:case ph:case qh:case rh:break;default:I=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(I=Kf(a.b,f,b,0<=a.wa?a.wa:a.Z,!0)),0>I&&(I=Kg(a,h,
!0)),void 0!==I?Ig(a,I,a.b.ka):a.error("unrecognized expression: "+h)}return!0}
function Wg(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c){if(d.Sa==sh){var e=a.Z;Jg(a,d.ma);if(e<a.Z){th(a);Jg(a,c);var d=a.R[0],f=a.fa[0];uh(a);if(void 0!==d)return a.R[e]+=d&130023423,a.R[e]|=d&4194304,f&&(a.fa[e]=a.fa[e]?a.fa[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' error: "+c);return!1}b=a.v;a.v=d;d.Qa=vh(a,c,!0);Jg(a,d.ma,d.Ua,d.Qa,d.Ab);a.v=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case fh:d.Sa||Jg(a,d.ma);break;case gh:0<d.Sa&&Jg(a,d.ma);break;case hh:0>d.Sa&&Jg(a,d.ma);break;case ih:d.Sa&&
Jg(a,d.ma);break;case Og:case Pg:for(b=0;b<d.Qa.length;b++)Jg(a,d.ma,d.Ua,[d.Qa[b]],[]);break;case kh:for(;0<d.Sa--;)Jg(a,d.ma);break;default:c=d.ma,th(a,b),Jg(a,c),uh(a)}return!0}function Jg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Fg(a,b[f]+"\r\n",c,d,e);f++);}function th(a,b){a.w.push({name:b,R:a.R,fa:a.fa,Z:a.Z,wa:a.wa,da:a.da});a.R=[];a.fa=[];0>a.wa&&(a.wa=a.Z);a.Z=0}
function uh(a){if(a.w.length){var b=a.w[a.w.length-1].name;b&&a.M.push({name:b,R:a.R,fa:a.fa});b=a.w.pop();a.R=b.R;a.fa=b.fa;a.Z=b.Z;a.wa=b.wa;a.w.length||-1==a.wa||a.error("scope restore error")}else a.error("scope nesting error")}ug.prototype.error=function(a){throw Error("error"+(this.da?" at line "+va(this.da):"")+": "+a);};function Eg(a,b){a.u("warning"+(a.da?" at line "+va(a.da):"")+": "+b)}
function wh(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(!g&&0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0<g&&a.error("extra bracket(s): "+b):f=b.substr(0,d);return f}
if(!Wg(a,f,b))switch(f){case Xg:case Yg:case Zg:Ng(a,h);break;case $g:(f=b)?(a.G=Kg(a,f,!0),void 0===a.G&&a.error("unrecognized expression: "+f)):a.G=a.ma;break;case ah:bh(a,b);break;case ch:a.Z=Kg(a,b)||0;break;case dh:bh(a,b.replace(",",",,"));break;case eh:case fh:case gh:case hh:case ih:case jh:case Og:case Pg:case kh:case lh:Tg(a,f,h);break;case mh:case nh:case oh:case ph:case qh:case rh:case sh:break;default:I=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(I=Kf(a.b,f,b,0<=a.wa?a.wa:a.Z,!0)),0>I&&(I=
Kg(a,h,!0)),void 0!==I?Ig(a,I,a.b.la):a.error("unrecognized expression: "+h)}return!0}
function Wg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){if(d.Ma==th){var e=a.Z;Jg(a,d.ia);if(e<a.Z){uh(a);Jg(a,c);var d=a.R[0],f=a.fa[0];vh(a);if(void 0!==d)return a.R[e]+=d&130023423,a.R[e]|=d&4194304,f&&(a.fa[e]=a.fa[e]?a.fa[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' error: "+c);return!1}b=a.j;a.j=d;d.Ra=wh(a,c,!0);Jg(a,d.ia,d.Ua,d.Ra,d.Ab);a.j=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case fh:d.Ma&&Jg(a,d.ia);break;case gh:d.Ma||Jg(a,d.ia);break;case hh:0<d.Ma&&Jg(a,d.ia);break;case ih:0>
d.Ma&&Jg(a,d.ia);break;case jh:d.Ma&&Jg(a,d.ia);break;case Og:case Pg:for(b=0;b<d.Ra.length;b++)Jg(a,d.ia,d.Ua,[d.Ra[b]],[]);break;case lh:for(;0<d.Ma--;)Jg(a,d.ia);break;default:c=d.ia,uh(a,b),Jg(a,c),vh(a)}return!0}function Jg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Fg(a,b[f]+"\r\n",c,d,e);f++);}function uh(a,b){a.w.push({name:b,R:a.R,fa:a.fa,Z:a.Z,wa:a.wa,da:a.da});a.R=[];a.fa=[];0>a.wa&&(a.wa=a.Z);a.Z=0}
function vh(a){if(a.w.length){var b=a.w[a.w.length-1].name;b&&a.N.push({name:b,R:a.R,fa:a.fa});b=a.w.pop();a.R=b.R;a.fa=b.fa;a.Z=b.Z;a.wa=b.wa;a.w.length||-1==a.wa||a.error("scope restore error")}else a.error("scope nesting error")}ug.prototype.error=function(a){throw Error("error"+(this.da?" at line "+va(this.da):"")+": "+a);};function Eg(a,b){a.u("warning"+(a.da?" at line "+va(a.da):"")+": "+b)}
function xh(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(!g&&0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0<g&&a.error("extra bracket(s): "+b):f=b.substr(0,d);return f}
function Kg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Kg(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Kg(a,f[2],c,d):0,void 0!==c&&(e=Y(a.b,b,18,!0)*Math.pow(2,18)+Y(a.b,c,18,!0)))):(void 0===d&&(d=0<=a.wa?a.wa:a.Z),b=b.replace(/SIXBIT\s*(\S)(.*?)\1/g,"'$2'").replace(/ASCII\s*(\S)(.*?)\1/g,'"$2"'),e=Ue(a.b,b.replace(/\.([^0-9]|$)/g,K(a.b,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
function Sg(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s): "+b);0<=f&&(d=b.substr(f,g-f));return d}function Vg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.j[d]){var e,f,g;e=f=g=[];a.j[d]={name:d,Sa:xh,Ua:e,Ab:f,Qa:g,ma:b+": 0",da:a.da};a.L.push(d)}}return c}
function vh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=wh(a,b);if(!c)break;var e=c;if("\\"==c[0]){var f=1,g=0;"'"==c[1]?(f++,g=6):'"'==c[1]&&(f++,g=7);var e=a,f=c.substr(f),g=void 0===g?0:g,h=Kg(e,f);if(void 0!==h){var k=5;switch(g){case 0:f=K(e.b,h,-1);break;case 6:k++;case 7:for(;h&&k--;)h=Math.trunc(h/Math.pow(2,g))}}e=f}d.push(e);b=b.substr(c.length+1)}return d}
function Sg(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s): "+b);0<=f&&(d=b.substr(f,g-f));return d}function Vg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.v[d]){var e,f,g;e=f=g=[];a.v[d]={name:d,Ma:yh,Ua:e,Ab:f,Ra:g,ia:b+": 0",da:a.da};a.M.push(d)}}return c}
function wh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=xh(a,b);if(!c)break;var e=c;if("\\"==c[0]){var f=1,g=0;"'"==c[1]?(f++,g=6):'"'==c[1]&&(f++,g=7);var e=a,f=c.substr(f),g=void 0===g?0:g,h=Kg(e,f);if(void 0!==h){var k=5;switch(g){case 0:f=K(e.b,h,-1);break;case 6:k++;case 7:for(;h&&k--;)h=Math.trunc(h/Math.pow(2,g))}}e=f}d.push(e);b=b.substr(c.length+1)}return d}
function Ng(a,b){var c=b;null==a.D&&(a.D=a.C="",b&&(a.D=b[0],c=b=b.substr(1)));if(a.D){var d=b.indexOf(a.D);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.D=null);a.C+=b}if(null==a.D){var d=b=0,e,f,g=a.C.length;a.K==Yg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.K==Zg&&(e--,f++));var k=a.C.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 Tg(a,b,c){var d,e,f,g,h,k;a.J="<";a.F=">";g=h=k=[];if(b==eh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]&&","!=e[2]){h=g=vh(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var l=h[c].lastIndexOf(">");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}b=yh;c=3}else if(b==jh){a.J="[";a.F="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
b+": "+c),c;f=e[1];b=sh;c=2}else if(b==Ug)a.J="[",a.F="]",f="?"+va(++a.V,5),a.j[f]&&a.error("literal symbol redefined: "+f),e=[c[0],c.substr(1)],b=zh,c=0;else if(b==Og||b==Pg){a.v||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;for(d=0;d<a.v.Ua.length&&e[1]!=a.v.Ua[d];d++);if(d==a.v.Ua.length)return a.error("invalid "+b+" parameter: "+e[1]),c;f="?"+b;g=[e[1]];b==Pg?k=a.v.Qa[d].split(""):k=vh(a,a.v.Qa[d]);b=k.length;
c=2}else{d=wh(a,c);if(!d)return a.error("missing "+b+" expression: "+c),c;c=c.substr(d.length+1);d=d.trim();e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=Kg(a,d)||0;c=1}f=f.toUpperCase();a.i=1;a.I=f;a.j[f]={name:f,Sa:b,Ua:g,Ab:h,Qa:k,ma:"",da:a.da};e[c]&&(a.i=2,Mg(a,e[c+1]));return f}function Mg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]==a.F&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.I||"";a.j[d].ma+=b;a.i||(a.I=null,Wg(a,d));return c}
function Gg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Hg&&a.N[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Kg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}(e=a.N[b])?(e.value=c,e.Vb=d,e.da=a.da):a.N[b]={name:b,value:c,Vb:d,da:a.da};a.b.I[b]=c}}function bh(a,b){var c=Kg(a,b,!0);void 0!==c?Ig(a,c,a.b.ka):a.error("unrecognized expression: "+b)}function Ig(a,b,c){a.R[a.Z]=Lg(a,b);null!=c&&(a.fa[a.Z]=c);a.Z++}
function Tg(a,b,c){var d,e,f,g,h,k;a.J="<";a.F=">";g=h=k=[];if(b==eh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]&&","!=e[2]){h=g=wh(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var l=h[c].lastIndexOf(">");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}b=zh;c=3}else if(b==kh){a.J="[";a.F="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
b+": "+c),c;f=e[1];b=th;c=2}else if(b==Ug)a.J="[",a.F="]",f="?"+va(++a.V,5),a.v[f]&&a.error("literal symbol redefined: "+f),e=[c[0],c.substr(1)],b=Ah,c=0;else if(b==Og||b==Pg){a.j||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;for(d=0;d<a.j.Ua.length&&e[1]!=a.j.Ua[d];d++);if(d==a.j.Ua.length)return a.error("invalid "+b+" parameter: "+e[1]),c;f="?"+b;g=[e[1]];b==Pg?k=a.j.Ra[d].split(""):k=wh(a,a.j.Ra[d]);b=k.length;
c=2}else{d=xh(a,c);if(!d)return a.error("missing "+b+" expression: "+c),c;c=c.substr(d.length+1);d=d.trim();e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=b==fh?a.v[d]||a.L[d]||void 0!==a.b.F[d]?1:0:Kg(a,d)||0;c=1}f=f.toUpperCase();a.i=1;a.I=f;a.v[f]={name:f,Ma:b,Ua:g,Ab:h,Ra:k,ia:"",da:a.da};e[c]&&(a.i=2,Mg(a,e[c+1]));return f}
function Mg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]==a.F&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.I||"";a.v[d].ia+=b;a.i||(a.I=null,Wg(a,d));return c}
function Gg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Hg&&a.L[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Kg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}(e=a.L[b])?(e.value=c,e.Vb=d,e.da=a.da):a.L[b]={name:b,value:c,Vb:d,da:a.da};a.b.F[b]=c}}function bh(a,b){var c=Kg(a,b,!0);void 0!==c?Ig(a,c,a.b.la):a.error("unrecognized expression: "+b)}function Ig(a,b,c){a.R[a.Z]=Lg(a,b);null!=c&&(a.fa[a.Z]=c);a.Z++}
function Lg(a,b,c){c=void 0===c?a.Z:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=C)&&Eg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}ug.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
var Hg=1,Qg=2,Rg=4,Xg="ASCII",Yg="ASCIZ",eh="DEFINE",$g="END",ah="EXP",fh="IFE",gh="IFG",hh="IFL",ih="IFN",Og="IRP",Pg="IRPC",lh="LALL",Ug="LITERAL",mh="LIST",ch="LOC",nh="NOSYM",jh="OPDEF",oh="PAGE",kh="REPEAT",Zg="SIXBIT",ph="SUBTTL",qh="TITLE",dh="XWD",rh="XLIST",yh=-1,sh=-2,zh=-3,xh=-4;
function Ah(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.S=null;Bh(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.X=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.U=this.P=!1;this.ba=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=Ch(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new Ac({id:this.bb+".bus",busWidth:this.X},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
0;b<e.length;b++)d=e[b],d.ha=this.j.ha,d.u=this.j.u,d.za=this.j.za;this.u(Rb+" v1.34.3\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.La&&d.La(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Dh),this.b&&(this.I=new F(this,"1.34.3"),Eh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Qh(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ha("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.L=b,g.V=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&Rh(this,this.Xa)}else q("Unable to find CPU component")}ka(Ah,r);function Bh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.S&&(e=a.S[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 Rh(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Bb(f)){Bb(f,function(){Rh(a,b,c)});return}}b.call(a,c)}
function Sh(a,b){var c=new F(a,"1.34.3",Th);if(Eh(c)&&Uh(c)){var d=c.get(Vh),e=b?b.get(Vh):"unknown";d!=e&&(a.ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Ah.prototype;
m.Xa=function(a){void 0===a&&(a=this.b||(this.L?Wh:Dh));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.3");if(a==Xh)b=!0;else if(a>Dh){if(Eh(d,this.L)){this.C=new F(this,"1.34.3",Yh);Eh(this.C)&&(Zh(this,d),a=$h,ai(this.C));this.C.set(Vh,Ga());bi(this.C);var e=this.b&&!this.K;if(a==Wh||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Uh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Eh(d,g):("error"==f&&"no machine state"!=
g?(this.ha("Error: "+g),"unable to verify user"==g&&(Qa(ci,""),this.i=null)):this.u(f+": "+g),ai(d),Eh(d)?(c=Uh(d),e=!0):c=!1))}e&&Sh(this,c?d:null)}else a==$h&&d.clear()}else Sh(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=di(this,g,d,b,c));b=[d,a,c];a!=Xh?Rh(this,this.Hb,b):this.Hb(b)}};
function di(a,b,c,d,e){if(!b.A.aa){b.A.aa=!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.Ba(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Dh,window&&window.location.reload()):a.P=!0,b.Ba(null),e=!1),!d&&b.Db){var g=b.Db.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.U=!0;this.A.aa=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(di(this,this.v,b,c,a),J(this,-2),this.v.ga());this.P&&(Zh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function Zh(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function zg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.3"),g=new F(a,"1.34.3",Th),h=Ga();g.set(Vh,h);f.set(Vh,h);f.set(ei,"1.34.3");f.set(fi,window?window.location.href:null);f.set(gi,window?window.navigator.userAgent:"");a.v&&a.v.sa&&(c&&(b&&(a.v.A.ga=a.v.A.O),a.v.W()),d=a.v.sa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.aa=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.aa&&(l.sa&&(d=l.sa(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.aa=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&hi(a,a.i,f.toString()),bi(g)&&bi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==ii),d&&f.clear(h)):e=f.toString());c&&(a.A.aa=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
var Hg=1,Qg=2,Rg=4,Xg="ASCII",Yg="ASCIZ",eh="DEFINE",$g="END",ah="EXP",fh="IFDEF",gh="IFE",hh="IFG",ih="IFL",jh="IFN",Og="IRP",Pg="IRPC",mh="LALL",Ug="LITERAL",nh="LIST",ch="LOC",oh="NOSYM",kh="OPDEF",ph="PAGE",lh="REPEAT",Zg="SIXBIT",qh="SUBTTL",rh="TITLE",dh="XWD",sh="XLIST",zh=-1,th=-2,Ah=-3,yh=-4;
function Bh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.S=null;Ch(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.X=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.U=this.P=!1;this.ba=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=Dh(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new Ac({id:this.bb+".bus",busWidth:this.X},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
0;b<e.length;b++)d=e[b],d.ha=this.j.ha,d.u=this.j.u,d.za=this.j.za;this.u(Rb+" v1.34.3\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.La&&d.La(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Eh),this.b&&(this.I=new F(this,"1.34.3"),Fh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Rh(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ha("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.L=b,g.V=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&Sh(this,this.Xa)}else q("Unable to find CPU component")}ka(Bh,r);function Ch(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.S&&(e=a.S[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 Sh(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Bb(f)){Bb(f,function(){Sh(a,b,c)});return}}b.call(a,c)}
function Th(a,b){var c=new F(a,"1.34.3",Uh);if(Fh(c)&&Vh(c)){var d=c.get(Wh),e=b?b.get(Wh):"unknown";d!=e&&(a.ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Bh.prototype;
m.Xa=function(a){void 0===a&&(a=this.b||(this.L?Xh:Eh));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.3");if(a==Yh)b=!0;else if(a>Eh){if(Fh(d,this.L)){this.C=new F(this,"1.34.3",Zh);Fh(this.C)&&($h(this,d),a=ai,bi(this.C));this.C.set(Wh,Ga());ci(this.C);var e=this.b&&!this.K;if(a==Xh||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Vh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Fh(d,g):("error"==f&&"no machine state"!=
g?(this.ha("Error: "+g),"unable to verify user"==g&&(Qa(di,""),this.i=null)):this.u(f+": "+g),bi(d),Fh(d)?(c=Vh(d),e=!0):c=!1))}e&&Th(this,c?d:null)}else a==ai&&d.clear()}else Th(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=ei(this,g,d,b,c));b=[d,a,c];a!=Yh?Sh(this,this.Hb,b):this.Hb(b)}};
function ei(a,b,c,d,e){if(!b.A.aa){b.A.aa=!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.Ba(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Eh,window&&window.location.reload()):a.P=!0,b.Ba(null),e=!1),!d&&b.Db){var g=b.Db.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.U=!0;this.A.aa=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(ei(this,this.v,b,c,a),J(this,-2),this.v.ga());this.P&&($h(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function $h(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function zg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.3"),g=new F(a,"1.34.3",Uh),h=Ga();g.set(Wh,h);f.set(Wh,h);f.set(fi,"1.34.3");f.set(gi,window?window.location.href:null);f.set(hi,window?window.navigator.userAgent:"");a.v&&a.v.sa&&(c&&(b&&(a.v.A.ga=a.v.A.O),a.v.W()),d=a.v.sa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.aa=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.aa&&(l.sa&&(d=l.sa(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.aa=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&ii(a,a.i,f.toString()),ci(g)&&ci(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==ji),d&&f.clear(h)):e=f.toString());c&&(a.A.aa=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
m.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Qb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Qb(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&&(Qb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;J(this,-1)};m.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)}J(this,-1)};
m.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)}J(this,-1)};
function J(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.kb+=d))&&(e.textContent=c.A.O?c.ba.toFixed(2)+"Mhz":"Stopped",c.kb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.O;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.T||8,e=e||0,e=8==f?ua(e,void 0):n(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.Ca);kc(a,a.i);ec(a,a.w)}}
m.ta=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.aa?zg(d,!1,!0):Rh(d,d.Xa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.aa&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Xa(Dh)}else d.reset(),d.v&&!d.D&&d.v.ga()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=Ch(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=zg(d,b);b?hi(d,a,c):d.ha("Resume disabled, machine state not saved")}},!0}return!1};
function Ch(a,b){var c=a.i;c||((c=Pa(ci),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=ji(a,c))||a.ha("The user ID is invalid.")):b&&a.ha("Browser local storage is not available"));return c}
function ji(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(ci,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function Qh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+ki(a,"1.34.3"));return b}
function hi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ki(a,"1.34.3");d.data=c;b=Ha(Ja()+"/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.ha("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ha(c),Qa(ci,""),a.i=null)}}
function jd(a,b){if(a.za){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.za.focus();!b&&window&&window.scrollTo(c,d)}}var Yh="failsafe",Th="validate",Vh="timestamp",ei="version",fi="url",gi="browser",ci="user",Xh=-1,Dh=0,Wh=1,$h=2,ii=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=t(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=t(f),g=new Ah(g,d,!0);sb(g,f);g.N&&Rh(g,g.Xa)}});
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.U&&!c.A.aa&&c.Xa(Xh)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.A.aa&&zg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=ki(a,b,c);ai(this,a.Sb)}m=F.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
m.data=function(){return this.b};function Eh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ka()&&(b=Pa(a.key))?(a.i=b,a.v=!0):!1}function Uh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function bi(a){var b=!0;if(Ka()){var c=JSON.stringify(a.b);Qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function ai(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){ai(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 ki(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 li=0;
function mi(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):ni(k,a,b,c,d,e,f,g)})}
function ni(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(u){g=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?oi(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function oi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);oi(a,b,c)}})}else c(a,null)}
function pi(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);l&&(--li||ab(!0));l=!1}var h,k,l=!0;li++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var u=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));u.appendChild(D)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?mi(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,--li||ab(!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),--li||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?mi(c,b,a,e,!0,f,p):ni(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(H){g(H.message)}return l}window.embedPDP10=function(a,b,c,d){ab(!1);return pi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return pi("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
m.ta=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.aa?zg(d,!1,!0):Sh(d,d.Xa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.aa&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Xa(Eh)}else d.reset(),d.v&&!d.D&&d.v.ga()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=Dh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=zg(d,b);b?ii(d,a,c):d.ha("Resume disabled, machine state not saved")}},!0}return!1};
function Dh(a,b){var c=a.i;c||((c=Pa(di),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=ki(a,c))||a.ha("The user ID is invalid.")):b&&a.ha("Browser local storage is not available"));return c}
function ki(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(di,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function Rh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+li(a,"1.34.3"));return b}
function ii(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=li(a,"1.34.3");d.data=c;b=Ha(Ja()+"/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.ha("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ha(c),Qa(di,""),a.i=null)}}
function jd(a,b){if(a.za){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.za.focus();!b&&window&&window.scrollTo(c,d)}}var Zh="failsafe",Uh="validate",Wh="timestamp",fi="version",gi="url",hi="browser",di="user",Yh=-1,Eh=0,Xh=1,ai=2,ji=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=t(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=t(f),g=new Bh(g,d,!0);sb(g,f);g.N&&Sh(g,g.Xa)}});
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.U&&!c.A.aa&&c.Xa(Yh)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.A.aa&&zg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=li(a,b,c);bi(this,a.Sb)}m=F.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
m.data=function(){return this.b};function Fh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ka()&&(b=Pa(a.key))?(a.i=b,a.v=!0):!1}function Vh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function ci(a){var b=!0;if(Ka()){var c=JSON.stringify(a.b);Qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function bi(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){bi(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 li(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 mi=0;
function ni(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):oi(k,a,b,c,d,e,f,g)})}
function oi(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(u){g=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?pi(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function pi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);pi(a,b,c)}})}else c(a,null)}
function qi(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);l&&(--mi||ab(!0));l=!1}var h,k,l=!0;mi++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var u=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));u.appendChild(D)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?ni(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,--mi||ab(!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),--mi||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?ni(c,b,a,e,!0,f,p):oi(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(H){g(H.message)}return l}window.embedPDP10=function(a,b,c,d){ab(!1);return qi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return qi("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="",l=null,p=0;p<f;p++){var u=b[p];if('"'==u||"'"==u)l&&u!=l?k+=u:(l?l=null:l=u,k&&(h.push(k),k=""));else{if(!l){if("\r"==u||"\n"==u)u=";";if(" "==u||"\t"==u||";"==u){k&&(h.push(k),k="");";"==u&&h.length&&(g.push(h),h=[]);continue}}k+=u}}k&&h.push(k);h.length&&g.push(h);d[e]=g;tb(a)||(c=!1)}return c};window.enableEvents=ab;window.sendEvent=cb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.3/pdp10-dbg.map

View file

@ -291,16 +291,16 @@ F(this,this.type+".writeSector("+f+":0:"+g+")",!0,!0),d=e.seek(f,0,g,!0))for(b&&
function xj(a){x.call(this,"Debugger",a);this.W=+a.base||16;this.za=null;this.N=["{","}"];this.ka=["[","]"];this.w=0;this.P=!1;this.u=-1;this.j=[];this.U={}}p(xj,x);xj.prototype.re=function(){return-1};xj.prototype.Bd=function(){};
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.P?b="end":b=a.j[a.u+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(za(b.substring(c,f))),c=f+1}}return a}
function zj(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a}
function Aj(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
function Aj(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=zj(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(zj(e))}return!0}
function Bj(a,b,c,d,e,f){var g,k,l,m=!1,n=0,q=[],t=[],r=a.W;for(a.W=e;c<d;){k=b[c++].trim();l=c<d?b[c++]:"";if(k)n=Cj(a,k,null,f,n);else if("{"==l){k=1;for(n=c;c<d;)if(c++,l=c<b.length?b[c++]:"","{"==l)k++;else if("}"==l&&!--k)break;n=Bj(a,b,n,c-1,a.W,f);k=c<d?b[c++].trim():"";l=c<d?b[c++]:""}else{if(" "==l)continue;if("^B"==l){a.W=2;continue}if("^O"==l){a.W=8;continue}if("^D"==l){a.W=10;continue}if(!(n&-1073741824)){if("+"==l)continue;if("-"==l){n=n<<2|1;continue}if("~"==l||"^-"==l){n=n<<2|2;continue}if("^L"==
l){n=n<<2|3;continue}}m=!0;break}if(void 0===n)if(null==a.za&&f)a.za=k,n=0;else{m=!0;f=!f;break}q.push(zj(n));if(" "==l)if(c<b.length-1&&!b[c])c++,l=b[c++];else{m=!0;break}if(!l)break;n="<"==a.N[0]?Dj:Ej;if(!n[l]){m=!0;break}t.length&&n[l]<=n[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.W="^_"==l?10:e;n=0}if(m||!Aj(q,t)||1!=q.length)m=!0;m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.W=r;return g}
function Fj(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var k=0,l=g+1,m=e;l<b.length;){var n=b[l++];if(n==c){m=-1;break}if(!m)break;m--;n=n.charCodeAt(0);7==d?n&=127:n=n-32&63;k=zj(k*Math.pow(2,d)+n,d*e,!0)}if(0<=m){!1===f&&a.v("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,k,-1)+b.substr(l)}return b}
function Gj(a,b,c){var d=void 0;a.za=null;if(b){"{"!=a.N[0]&&(b=b.split(a.N[0]).join("{").split(a.N[1]).join("}"));b=Fj(a,b,'"',7,5,c);if(!b)return d;b=Fj(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=Bj(a,b,0,b.length,a.W,c);void 0!==d&&!1===c&&Hj(a,null,d)}return d}
function Gj(a,b,c){var d=void 0;a.za=null;if(b){"{"!=a.N[0]&&(b=b.split(a.N[0]).join("{").split(a.N[1]).join("}"));b=Fj(a,b,'"',7,5,c);if(!b)return d;b=Fj(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Bj(a,b,0,b.length,a.W,c);void 0!==d&&!1===c&&Hj(a,null,d)}return d}
function Cj(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.re(b),0<=f?f=a.Bd(f):(f=a.U[b],null==f&&(f=ma(b,1<b.length?a.W:10))),null!=f){for(;e;){switch(e&3){case 1:f=-zj(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=zj(f)}else d||a.v("invalid "+(c?c:"value")+": "+b);else d||a.v("missing "+(c||"value"));return f}
function Hj(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.W?K(a,c,32,8,1)+" "+c+".":K(a,c,32,16,1)+" "+K(a,c,32,8,1)+" "+K(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.v((null!=b?b+": ":"")+d);return e}function Ij(a,b){if(b)return Hj(a,b,a.U[b]);var c=0;for(b in a.U)Hj(a,b,a.U[b]),c++;return 0<c}
function K(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.W){case 2:a=pa(b,0<c?c:0,e);break;case 8:a=u(b,0<c?(c+2)/3|0:0,!!e);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0,!!e)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
var Ej={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Dj={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
var Ej={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Dj={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function Jj(a){xj.call(this,a);this.Ia=!1;this.N=["(",")"];this.ka=[];this.G=X();this.Ha=X();this.O=X();this.B=[];this.b=this.L=this.C=[];Kj(this);this.R=this.ha=0;this.i=[];this.ta=void 0;Lj(this);this.D=this;this.ma={};this.ja=this.ke=0;this.S=null;this.M=[];Mj(this,a.messages);this.ya=a.commands;this.La=Nj;this.Y=[];this.I=0;this.Qa=this.ua=null;this.w=this.Ka=this.Ja=this.Z=this.qa=0;this.g=this.X=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
(global[y]=function(a){return le(b,a)})}p(Jj,xj);function Oj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Wa:!1,W:c}}h=Jj.prototype;h.Hd=function(a,b){a.K=b;a.Wa=!1;a.W=void 0;return a};function Pj(a){return[a.K,a.Na,a.W,a.Wa,a.Qc]}function Qj(a,b){var c=X(b[0],b[1],b[2]);c.Wa=b[3];b[4]&&(c.he=yj(a,c.Qc=b[4]));return c}
h.Ca=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Mj(this,a);1140>this.f.ka&&(this.Y=this.Y.concat(Rj));1145>this.f.ka&&(this.Y=this.Y.concat(Sj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Oj(Tj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):