diff --git a/Gruntfile.js b/Gruntfile.js index 11f87e138..a8b4cf298 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -422,12 +422,13 @@ module.exports = function(grunt) { var contentOrig = content; var reManifest = /([ \t]*)/g, matchManifest; while ((matchManifest = reManifest.exec(contentOrig))) { - var sManifest = grunt.file.read(path.join('.', matchManifest[2])); + var sFile = matchManifest[2]; + var sManifest = grunt.file.read(path.join('.', sFile)); if (!sManifest) continue; var sDefaultName = "", match; match = sManifest.match(/(.*?)<\/title>/); if (match) { - sDefaultName = match[1]; + sDefaultName += match[1]; match = sManifest.match(/(.*?)<\/version>/); if (match) sDefaultName += ' ' + match[1]; } diff --git a/apps/pc/1981/visicalc/manifest.xml b/apps/pc/1981/visicalc/manifest.xml index 9235da82f..d52969394 100644 --- a/apps/pc/1981/visicalc/manifest.xml +++ b/apps/pc/1981/visicalc/manifest.xml @@ -13,6 +13,7 @@ Lotus Development + Demo: VisiCalc VC.COM README.md VisiCalc License diff --git a/apps/pc/1982/esuite/manifest.xml b/apps/pc/1982/esuite/manifest.xml index de0607cf3..762c444d8 100644 --- a/apps/pc/1982/esuite/manifest.xml +++ b/apps/pc/1982/esuite/manifest.xml @@ -9,7 +9,7 @@ 1982 - Executive Suite (1982) + Demo: Executive Suite (1982) ESUITE.COM GAME.DAT MobyGames diff --git a/apps/pc/1985/rogue/manifest.xml b/apps/pc/1985/rogue/manifest.xml index d04aa21fe..a49221705 100644 --- a/apps/pc/1985/rogue/manifest.xml +++ b/apps/pc/1985/rogue/manifest.xml @@ -13,7 +13,7 @@ Jon Lane Michael Toy - Rogue (1985) + Demo: Rogue (1985) MKOPT.EXE ROGUE.COM ROGUE.EXE diff --git a/apps/pc/1987/thinktank/manifest.xml b/apps/pc/1987/thinktank/manifest.xml index ef9ffadc2..834d9b4cc 100644 --- a/apps/pc/1987/thinktank/manifest.xml +++ b/apps/pc/1987/thinktank/manifest.xml @@ -8,7 +8,7 @@ Living Videotext September 25, 1987 - ThinkTank 2.41NP + Demo: ThinkTank 2.41NP AUTOEXEC.BAT READ_ME.DB READ_ME.SAV diff --git a/apps/pc/1988/moria/manifest.xml b/apps/pc/1988/moria/manifest.xml index ff5bf60bf..429d73ea0 100644 --- a/apps/pc/1988/moria/manifest.xml +++ b/apps/pc/1988/moria/manifest.xml @@ -15,7 +15,7 @@ MSDOS port - Moria v4.872 + Demo: Moria v4.872 CONFIG.DOC GOD MADNESS1 diff --git a/apps/pc/1992/moria/manifest.xml b/apps/pc/1992/moria/manifest.xml index b6c2262b8..bad158e3d 100644 --- a/apps/pc/1992/moria/manifest.xml +++ b/apps/pc/1992/moria/manifest.xml @@ -93,7 +93,7 @@ Macintosh port for Think C - Moria 5.5 + Demo: Moria 5.5 EXP.DOC MORIA.CNF MORIA1.TXT diff --git a/devices/pc/machine/5160/mda/256kb/fake188/debugger/machine.xml b/devices/pc/machine/5160/mda/256kb/fake188/debugger/machine.xml index 30f781123..d8aa974dd 100644 --- a/devices/pc/machine/5160/mda/256kb/fake188/debugger/machine.xml +++ b/devices/pc/machine/5160/mda/256kb/fake188/debugger/machine.xml @@ -12,7 +12,6 @@ - None diff --git a/devices/pc/machine/5160/mda/256kb/fake188/machine.xml b/devices/pc/machine/5160/mda/256kb/fake188/machine.xml index 789351bb8..b857fcbb7 100644 --- a/devices/pc/machine/5160/mda/256kb/fake188/machine.xml +++ b/devices/pc/machine/5160/mda/256kb/fake188/machine.xml @@ -11,7 +11,6 @@ - None diff --git a/disks/pc/compiled/library.xml b/disks/pc/compiled/library.xml index 73ef102b8..40c35b613 100644 --- a/disks/pc/compiled/library.xml +++ b/disks/pc/compiled/library.xml @@ -2,7 +2,6 @@ - None Empty Diskette (360K) Empty Diskette (720K) Empty Diskette (1.2M) @@ -503,11 +502,11 @@ Wolfenstein 3D 1.4 MS Flight Simulator (1982) MS Flight Simulator (1984) - VisiCalc - Executive Suite (1982) - Rogue (1985) - ThinkTank 2.41NP - Moria 5.5 + Demo: VisiCalc + Demo: Executive Suite (1982) + Demo: Rogue (1985) + Demo: ThinkTank 2.41NP + Demo: Moria 5.5 DOS Internals The Undocumented PC Undocumented DOS (Disk 1) diff --git a/disks/pc/compiled/samples.xml b/disks/pc/compiled/samples.xml index c72e97551..0cb078410 100644 --- a/disks/pc/compiled/samples.xml +++ b/disks/pc/compiled/samples.xml @@ -2,13 +2,12 @@ - None PC-DOS 1.00 PC-DOS 1.10 PC-DOS 2.00 (Disk 1) PC-DOS 2.00 (Disk 2) Microsoft Adventure - VisiCalc + Demo: VisiCalc Load Save diff --git a/disks/pc/cpm/1.1b/machine.xml b/disks/pc/cpm/1.1b/machine.xml index b65bfdfc7..680248e31 100644 --- a/disks/pc/cpm/1.1b/machine.xml +++ b/disks/pc/cpm/1.1b/machine.xml @@ -10,7 +10,6 @@ - None Load diff --git a/disks/pc/games/infocom/disks.xml b/disks/pc/games/infocom/disks.xml index 53ce62352..05f0ed611 100644 --- a/disks/pc/games/infocom/disks.xml +++ b/disks/pc/games/infocom/disks.xml @@ -2,7 +2,6 @@ - None diff --git a/disks/pc/library.xml b/disks/pc/library.xml index ef1ea5169..5dc8992c7 100644 --- a/disks/pc/library.xml +++ b/disks/pc/library.xml @@ -2,7 +2,6 @@ - None diff --git a/disks/pc/samples.xml b/disks/pc/samples.xml index b1a0d2cf6..11db6b465 100644 --- a/disks/pc/samples.xml +++ b/disks/pc/samples.xml @@ -2,7 +2,6 @@ - None diff --git a/disks/pc/windows/win10x.xml b/disks/pc/windows/win10x.xml index 43db46da5..370a2dfe9 100644 --- a/disks/pc/windows/win10x.xml +++ b/disks/pc/windows/win10x.xml @@ -2,7 +2,6 @@ - None Windows 1.01 (SETUP) Windows 1.01 (BUILD) diff --git a/docs/pcjs/examples/example2.xml b/docs/pcjs/examples/example2.xml index 56353771a..3968e56ec 100644 --- a/docs/pcjs/examples/example2.xml +++ b/docs/pcjs/examples/example2.xml @@ -17,7 +17,6 @@ - None PC-DOS 1.00 Load diff --git a/docs/pcjs/examples/example3a.xml b/docs/pcjs/examples/example3a.xml index e2907d940..3aca3acda 100644 --- a/docs/pcjs/examples/example3a.xml +++ b/docs/pcjs/examples/example3a.xml @@ -56,7 +56,6 @@ - None PC-DOS 1.00 VisiCalc diff --git a/docs/pcjs/examples/pc-dbg.js b/docs/pcjs/examples/pc-dbg.js index 405ca7959..34786f72b 100644 --- a/docs/pcjs/examples/pc-dbg.js +++ b/docs/pcjs/examples/pc-dbg.js @@ -175,7 +175,7 @@ function $h(a,b){this.A-=-1===this.C?-1===this.D?this.B.Lj:this.B.Kj:this.B.Ij;r function ci(a,b){var c=this.L>>3&7;switch(c){case 0:this.aa=this.G;break;case 2:this.aa=this.M;break;case 3:this.aa=this.H;break;default:if(80286==this.ia||80386==this.ia&&4!=c&&5!=c){C.call(this,6);break}switch(c){case 1:this.aa=this.I;break;case 4:this.aa=I(this);break;case 5:this.aa=this.P;break;case 6:this.aa=this.K;break;case 7:this.aa=this.J}}return $h.call(this,0,b)} function di(a,b){switch(this.L>>3&7){case 0:b=this.Xa.Z;break;case 1:b=this.va.Z;break;case 2:b=this.ta.Z;break;case 3:b=this.vb.Z;break;case 4:if(80386<=this.ia){b=this.Ob.Z;break}C.call(this,6);b=a;break;case 5:if(80386<=this.ia){b=this.Pb.Z;break}default:C.call(this,6),b=a}-1!==this.C&&nd(this,2);return $h.call(this,0,b)} function Rh(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,h=e>>>16,e=(e&65535)+c*f;this.ja=e<<16|g&65535;this.wa=h+((e>>>16)+d*f)|0}else this.ja=a*b|0,this.wa=0}function ei(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,128)}function fi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,this.Ia)&this.R} -function gi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function hi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function Bi(){return uf(this)?1:0}function Ci(){return pf(this)?1:0}function Di(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0} +function gi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function hi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function ii(){return uf(this)?1:0}function Ci(){return pf(this)?1:0}function Di(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0} function Hi(){return pf(this)||sf(this)?0:1}function Ii(){return tf(this)?1:0}function Ji(){return tf(this)?0:1}function Ki(){return qf(this)?1:0}function Li(){return qf(this)?0:1}function Mi(){return!tf(this)!=!uf(this)?1:0}function Ni(){return!tf(this)!=!uf(this)?0:1}function Oi(){return sf(this)||!tf(this)!=!uf(this)?1:0}function Pi(){return sf(this)||!tf(this)!=!uf(this)?0:1}function Qi(a,b){return Ri.call(this,a,b,this.xa())}function Si(a,b){return Ti.call(this,a,b,this.xa())} function Ui(a,b){return Ri.call(this,a,b,this.I&31)}function Vi(a,b){return Ti.call(this,a,b,this.I&31)}function Wi(a,b){return Xi.call(this,a,b,this.xa())}function Yi(a,b){return Zi.call(this,a,b,this.xa())}function $i(a,b){return Xi.call(this,a,b,this.I&31)}function aj(a,b){return Zi.call(this,a,b,this.I&31)}function bj(a,b){var c=a-b|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255} function cj(a,b){var c=a-b|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function dj(a,b){vf(this,a&b,128);this.A-=-1===this.C?-1===this.D?this.B.ai:this.B.Tf:this.B.Tf;this.S|=2;return a}function ej(a,b){vf(this,a&b,this.Ia);this.A-=-1===this.C?-1===this.D?this.B.ai:this.B.Tf:this.B.Tf;this.S|=2;return a}function fj(a,b){var c=this.G&this.R,d=(1<<(this.I&31))-1;return a&~(d<>3;6>b?he.call(this):(we(this,a&7,this.Ce[b]),this.A-=12)}};M[38]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=(a&56)>>3;6>b?he.call(this):(this.Ce[b]=ve(this,a&7),this.A-=12)}};M[128]=function(){var a=this.Ma();uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[129]=function(){var a=this.Ma();uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}; M[130]=function(){var a=this.Ma();pf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[131]=function(){var a=this.Ma();pf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[132]=function(){var a=this.Ma();sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[133]=function(){var a=this.Ma();sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[134]=function(){var a=this.Ma();pf(this)||sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}; M[135]=function(){var a=this.Ma();pf(this)||sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[136]=function(){var a=this.Ma();tf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[137]=function(){var a=this.Ma();tf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[138]=function(){var a=this.Ma();qf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[139]=function(){var a=this.Ma();qf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}; -M[140]=function(){var a=this.Ma();!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[141]=function(){var a=this.Ma();!tf(this)==!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[142]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[143]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[144]=function(){qj.call(this,Bi)}; -M[145]=function(){qj.call(this,Bi)};M[146]=function(){qj.call(this,Ci)};M[147]=function(){qj.call(this,Di)};M[148]=function(){qj.call(this,Ei)};M[149]=function(){qj.call(this,Fi)};M[150]=function(){qj.call(this,Gi)};M[151]=function(){qj.call(this,Hi)};M[152]=function(){qj.call(this,Ii)};M[153]=function(){qj.call(this,Ji)};M[154]=function(){qj.call(this,Ki)};M[155]=function(){qj.call(this,Li)};M[156]=function(){qj.call(this,Mi)};M[157]=function(){qj.call(this,Ni)};M[158]=function(){qj.call(this,Oi)}; +M[140]=function(){var a=this.Ma();!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[141]=function(){var a=this.Ma();!tf(this)==!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[142]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[143]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[144]=function(){qj.call(this,ii)}; +M[145]=function(){qj.call(this,ii)};M[146]=function(){qj.call(this,Ci)};M[147]=function(){qj.call(this,Di)};M[148]=function(){qj.call(this,Ei)};M[149]=function(){qj.call(this,Fi)};M[150]=function(){qj.call(this,Gi)};M[151]=function(){qj.call(this,Hi)};M[152]=function(){qj.call(this,Ii)};M[153]=function(){qj.call(this,Ji)};M[154]=function(){qj.call(this,Ki)};M[155]=function(){qj.call(this,Li)};M[156]=function(){qj.call(this,Mi)};M[157]=function(){qj.call(this,Ni)};M[158]=function(){qj.call(this,Oi)}; M[159]=function(){qj.call(this,Pi)};M[160]=function(){pd(this,this.Ob.Z,this.ba,2);this.A-=this.B.Ie};M[161]=function(){this.U=this.ga;var a=D(this);this.Ob.load(a);this.A-=this.B.zc;this.U=-1};M[163]=function(){this.fa.call(this,Dh);-1!==this.D&&(this.A-=6)};M[164]=function(){this.fa.call(this,2==this.ba?Qi:Si);this.A-=-1===this.D?3:7};M[165]=function(){this.fa.call(this,2==this.ba?Ui:Vi);this.A-=-1===this.D?3:7};M[168]=function(){pd(this,this.Pb.Z,this.ba,2);this.A-=this.B.Ie}; M[169]=function(){this.U=this.ga;var a=D(this);this.Pb.load(a);this.A-=this.B.zc;this.U=-1};M[171]=function(){this.fa.call(this,Gh);-1!==this.D&&(this.A-=5)};M[172]=function(){this.fa.call(this,2==this.ba?Wi:Yi);this.A-=-1===this.D?3:7};M[173]=function(){this.fa.call(this,2==this.ba?$i:aj);this.A-=-1===this.D?3:7};M[175]=function(){this.W.call(this,2==this.ba?Nh:Ph)};M[178]=function(){this.W.call(this,Zh)};M[179]=function(){this.fa.call(this,Fh);-1!==this.D&&(this.A-=5)}; M[180]=function(){this.W.call(this,Wh)};M[181]=function(){this.W.call(this,Xh)}; @@ -597,7 +597,7 @@ var sp={3:{Vd:3,ie:0,name:aa.Zn},4:{Vd:2,ie:1,name:aa.Xn},5:{Vd:9,ie:7,name:aa.i m.Qb=function(a,b,c){var d=this;switch(b){case "listDisks":this.qa[b]=c;if(this.ga){b=[];for(a=0;ab.text?1:a.textb.value?1:a.value'+b+"");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tp(d,a)},!0;case "loadDrive":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&up(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.ja){c.parentNode.removeChild(c);break}this.qa[b]=c;c.onclick=function(){var a=d.qa.listDrives;a&&a.options&&d.A&&(a=ca(a.value, 10),(a=d.A[a])?(a=a.za)?(a=Ia(pp(a),"octet-stream",!0,a.Ng.replace(".json",".img")),w(a)):d.Na("No diskette loaded in drive."):d.Na("No diskette drive selected."))};return!0;case "mountDrive":if(!this.ja){c.parentNode.removeChild(c);break}this.qa[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;up(d,fa(b,!0),b,a)}return!1};return!0}return!1}; -m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}vp(this);hc(b,this,wp);lc(b,this,xp);this.ja&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)}; +m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}vp(this);hc(b,this,wp);lc(b,this,xp);yp(this,"None","",!0);this.ja&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)}; m.ic=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.V.dh){this.B=[];for(var c=0;cCp(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,h=void 0,h=0;ha.Bb||f[1]>a.ub)&&(this.Na('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.hb)),b=null);b?(a.za=b,a.kk=c,a.Le=d,Dp(this,c,d,b),f=b.info(),this.X|=128,this.Na('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.hb),a.Ae||e),a.zg=f[0],a.Nf=f[1],a.Of=f[2],this.V&&this.V.yd()):a.$e=!1;a.Ae&&(a.Ae=!1,--this.fa||rb(this));tp(this,a.hb)}; -function yp(a,b,c){if((a=a.qa.listDisks)&&a.options){for(var d=0;d=this.C&&(this.ma&=-81,this.L=this.C=0);return c}; @@ -760,23 +760,23 @@ Zq(a,g[1],!0);if(q)if(a.ua=q,void 0===g[2])a.O("begin assemble at "+Sq(q)),a.Ea= a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),a.O("\tbn [n]\tbreak after [n] instruction(s)");else{var H=F.charAt(1);if("l"==H){var L=0,L=L+pr(a,a.A),L=L+pr(a,a.ra);(L+=pr(a,a.ga))||a.O("no breakpoints")}else if("n"==H)a.Oa=Eq(a,v),a.O("break after "+a.Oa+" instruction(s)");else if(void 0===v)a.O("missing breakpoint address");else{var V={};if("*"!=v&&(V=Zq(a,v,!0,!0),!V))break a;v=null==V.Ra?v:u(V.Ra);"c"==H?null==V.Ra?(jq(a),a.O("all breakpoints cleared")):Rq(a, a.A,V)||Rq(a,a.ra,V)||Rq(a,a.ga,V)||a.O("breakpoint missing: "+Sq(V)):"i"==H?a.O("breakpoint "+(gc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (input)"):"o"==H?a.O("breakpoint "+(kc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (output)"):null!=V.Ra&&(br(a,V,E),"p"==H?a.Sd(a.A,V):"r"==H?a.Sd(a.ra,V):"w"==H?a.Sd(a.ga,V):a.O("unknown breakpoint command: "+H))}}}break;case "c":Fr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in wq)a.$a[bb]&&(Ba&&(Ba+= ","),Ba+=bb);Ba+=",state,symbols";a.O("dump memory commands:");a.O("\tdb [a] [#] dump # bytes at address a");a.O("\tdw [a] [#] dump # words at address a");a.O("\tdd [a] [#] dump # dwords at address a");a.O("\tdh [#] [#] dump # instructions from history");a.O("\tdi [#] dump descriptor info for IDT #");a.O("\tds [#] dump descriptor info for selector #");Ba.length&&a.O("dump extension commands:\n\t"+Ba)}else if("state"==ja){var Vb=Nr(a.V,!0);"console"==Ha?console.log(Vb):(Fr(a), -a.O(Vb))}else if("symbols"==ja)for(var wa=0;wa>>20;Da.ui=a.F.Pd+Da.bk;Da.yb=ce.sa[(Da.ui&ce.Gb)>>>ce.La];Da.Ui=Da.yb.Nd(Da.bk);Da.ck=(Te&4190208)>>>10;Da.vi=(Da.Ui&-4096)+Da.ck;Da.zb=ce.sa[(Da.vi&ce.Gb)>>>ce.La];Da.Vi=Da.zb.Nd(Da.ck);Da.Fk=(Da.Vi&-4096)+(Te&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+r(Te),qd=qd+(" %%"+dr(be.ui,be.Ui)),qd=qd+(" %%"+dr(be.vi,be.Vi,!0)), qd=qd+(" %%"+r(be.Fk));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Jr(a,P);break a}for(bb in wq)if(P[1]==bb){var En=a.$a[bb];En?(P.shift(),P.shift(),En(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Fn=ja,Gn=Ha,Hn="",In=0,tb=a.Fa,tc=a.ja;if(tc.length){var Db=+Fn||a.Ub,de=+Gn||10;isNaN(Db)?Db=de:Hn="more ";Db>tc.length&&(a.O("note: only "+tc.length+" available"),Db=tc.length); -tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ji=[];"call"==Gn&&(de=1E5,ji=["CALL"]);for(void 0!==Fn&&a.O(Db+" instructions earlier:");0=tc.length&&(tb=0);a.Ub=Db;In++;de--}}In||(a.O("no "+Hn+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift(); -var ki=P[0];if(ki){var Ve=Eq(a,ki);if(void 0===Ve||0>Ve||255>> -0,65536>4||1,mi="dd"==ia?4:"dw"==ia?2:1,Nn=0;Nnpi;pi++){var sg=a.Qa(ee,1),rg=rg|sg<<(ni++<<3);ni==mi&&(We+=r(rg,2*mi),We+=1==mi?7==pi?"-":" ":" ",rg=ni=0);oi+=32<=sg&&128>sg?String.fromCharCode(sg):"."}sd&&(sd+="\n");sd+=ja+" "+We+" "+oi}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var tg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(tg=2,On=65535,Pn=a.na,Qn=a.jb);var Rn=tg<<1,Sn=g[1]; +tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ki=[];"call"==Gn&&(de=1E5,ki=["CALL"]);for(void 0!==Fn&&a.O(Db+" instructions earlier:");0=tc.length&&(tb=0);a.Ub=Db;In++;de--}}In||(a.O("no "+Hn+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift(); +var li=P[0];if(li){var Ve=Eq(a,li);if(void 0===Ve||0>Ve||255>> +0,65536>4||1,ni="dd"==ia?4:"dw"==ia?2:1,Nn=0;Nnqi;qi++){var sg=a.Qa(ee,1),rg=rg|sg<<(oi++<<3);oi==ni&&(We+=r(rg,2*ni),We+=1==ni?7==qi?"-":" ":" ",rg=oi=0);pi+=32<=sg&&128>sg?String.fromCharCode(sg):"."}sd&&(sd+="\n");sd+=ja+" "+We+" "+pi}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var tg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(tg=2,On=65535,Pn=a.na,Qn=a.jb);var Rn=tg<<1,Sn=g[1]; if(null==Sn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var ug=Zq(a,Sn);if(ug)for(var vg=2;vgvi;){for(var uc=null,ns=256;Tc.Ra>>>0>>0;){Ze.Ra=a.tb(Tc,!0);if(null==Tc.Da||!ns--)break;Ze.Z=Un;if(uc=Lr(a,Ze))break;Ze.Z=a.tb(Tc);if(uc=Lr(a,Ze,!0)){Un=a.tb(Tc,!0);0wi;){for(var uc=null,ns=256;Tc.Ra>>>0>>0;){Ze.Ra=a.tb(Tc,!0);if(null==Tc.Da||!ns--)break;Ze.Z=Un;if(uc=Lr(a,Ze))break;Ze.Z=a.tb(Tc);if(uc=Lr(a,Ze,!0)){Un=a.tb(Tc,!0);0d.hb[0]&&(d.hb[0]=255,d.hb[1]--,0>d.hb[1]&&(d.hb[1]=255)));return e}function qj(a,b,c,d){a=a.G[b];c=a.$b[c];c.hb[a.Ib]=c.jc[a.Ib]=d;a.Ib^=1} -function rj(a,b){var c=a.G[b],d=c.Db|1;c.Db&=-16;return d}function wj(a,b,c){a=a.G[b];b=c&3;a.Db=a.Db&~(16<>2].$b[b&3],c,d,e)} +function rj(a,b){var c=a.G[b],d=c.Db|1;c.Db&=-16;return d}function sj(a,b,c){a=a.G[b];b=c&3;a.Db=a.Db&~(16<>2].$b[b&3],c,d,e)} function yj(a,b,c){b=a.G[b>>2].$b[b&3];b.yf&&b.kg&&b.Mf?(c&&(b.done=c),b.Qd||Dj(a,b,!0)):c&&c(!0)}function Dj(a,b,c){c&&(b.count=b.hb[1]<<8|b.hb[0],b.type=b.mode&12,b.Sh=b.Yc=!1);for(var d=!1;0<=b.count&&(c=b.tf<<16|b.gb[1]<<8|b.gb[0],4==b.type?(d=!0,function(c){b.kg.call(b.yf,b.Mf,-1,function(f,g){0>f&&(b.Sh||(b.Sh=!0),f=255);b.Qd||a.ha.Mc(c,f);(d=g)&&setTimeout(function(){Ej(b)||Dj(a,b)},0)})}(c)):8==b.type?(c=a.ha.Jb(c),0>b.kg.call(b.yf,b.Mf,c)&&(b.Yc=!0)):0!=b.type&&(b.Yc=!0)),!d&&!Ej(b););} function Ej(a){if(!a.Yc&&0<=--a.count&&(a.mode&32?(a.gb[0]--,0>a.gb[0]&&(a.gb[0]=255,a.gb[1]--,0>a.gb[1]&&(a.gb[1]=255))):(a.gb[0]++,255>>4,0,this.I,this.D,this.K),delete this.K);return!0};ak.prototype.Ub=function(){return!0}; @@ -472,8 +472,8 @@ function Jk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");e function sl(a,b){if(1==b)return a.oa[0]=Ok[0],a.oa[1]=Ok[7],a.oa;if(2==b){var c=a.D.ff;if(a.D===a.B){var d=a.B.Kc[0],c=d&7;d&16&&(c|=8);18!=a.B.Kc[1]&&(c|=32)}a.oa[0]=Ok[c&15];c=c&32?Qk:Pk;for(d=0;df;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.oa[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Kc[15]?c.Kc:Rk;for(f=0;16>f;f++)g=e[f]&63,m?(g|= (c.Kc[20]&12)<<4,c.Kc[16]&128&&(g&=-49,g|=(c.Kc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.oa[f]=[h,k,g,255]}a.La=!0}return a.oa}function dk(a,b,c,d){a.Ab=b;a.Xa=c;a.Ja=d} function ol(a,b){var c=!1;if(window&&a.Ab&&(!b||a.I)){var d=0,e=a.Ja?a.Ja:8,f=sl(a);null!=a.Xa[0]&&tl(a,3,a.Xa[0],d,e,8,a.Ab,f)&&(c=!0);d=a.Ja?0:2048;e=a.Ja?a.Ja:9;null!=a.Xa[1]&&(tl(a,1,a.Xa[1],d,e,14,a.Ab,Mk,Nk)&&(c=!0),a.Ja&&tl(a,a.Ra,a.Xa[1],0,a.Ja,14,a.Ab,f)&&(c=!0))}return c}function tl(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ul(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Zd&&ul(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m} -function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<va||!da?va:8,Hf=sj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac= -0;ac=va-2,dn=qd[ac>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,tj,uj,vj);J&&vl(Hf,tj+1,uj,vj)}sj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0a.Ea&&(a.Ea=0):a.Ea=-1} +function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<va||!da?va:8,Hf=tj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac= +0;ac=va-2,dn=qd[ac>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,uj,vj,wj);J&&vl(Hf,uj+1,vj,wj)}tj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0a.Ea&&(a.Ea=0):a.Ea=-1} function rl(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.D.ab[b])return;var c=a.D.ab[10],b=c&31,d=a.D.ab[11]&31,e=a.D.ab[9]&31,f=!1;a.D===a.B&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)xl(a);else{c=a.D.ab[15]+((a.D.ab[14]&63)<<8);a.ia!=c&&(xl(a),a.ia=c);d=d-b+1;if(a.td!=b||a.Gc!=d)a.td=b,a.Gc=d;a.Da=e+1;wl(a)}}} function xl(a){if(0<=a.ia){if(void 0!==a.S){var b=a.S[a.ia];if(b&131072){var b=b&-131073,c=a.ia%a.H,d=a.ia/a.H|0;a.I&&a.xa[a.I]&&(a.Ga&&yl(a,c,d,b,a.Ga),yl(a,c,d,b));a.S[a.ia]=b}}a.ia=-1}} function zl(a){var b,c=a.D;a.Zc=!1;var d=c.Hd[5];if(null!=d){b=1024;var e=0,f=c.Hd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Hc=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.Ra==ek&&(e=3,c.Hc=f&7)}d&8&&(b=1280);c=c.Be[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Zc=!0));b|=e}return b} @@ -546,7 +546,7 @@ var sm={3:{jd:3,yd:0,name:aa.Fm},4:{jd:2,yd:1,name:aa.Dm},5:{jd:9,yd:7,name:aa.N l.zb=function(a,b,c){var d=this;switch(b){case "listDisks":this.ka[b]=c;if(this.W){b=[];for(a=0;ab.text?1:a.textb.value?1:a.value'+b+"");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.ka[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tm(d,a)},!0;case "loadDrive":return this.ka[b]=c,c.onclick=function(){var a=d.ka.listDisks;a&&um(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[b]=c;c.onclick=function(){var a=d.ka.listDrives;a&&a.options&&d.B&&(a=ca(a.value, 10),(a=d.B[a])?(a=a.ta)?(a=za(pm(a),"octet-stream",!0,a.nh.replace(".json",".img")),n(a)):d.Ba("No diskette loaded in drive."):d.Ba("No diskette drive selected."))};return!0;case "mountDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;um(d,fa(b,!0),b,a)}return!1};return!0}return!1}; -l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.P=kb(a,"ChipSet");if((this.K=jc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}vm(this);Nb(b,this,wm);Pb(b,this,xm);this.Y&&ym(this,"Local Disk","?");ym(this,"Remote Disk","??");zm(this)||ab(this)}; +l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.P=kb(a,"ChipSet");if((this.K=jc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}vm(this);Nb(b,this,wm);Pb(b,this,xm);ym(this,"None","",!0);this.Y&&ym(this,"Local Disk","?");ym(this,"Remote Disk","??");zm(this)||ab(this)}; l.Vb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ba.jg){this.C=[];for(var c=0;cCm(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,h=void 0,h=0;ha.ib||f[1]>a.jb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ta=b,a.ij=c,a.Vd=d,Dm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Nd||e),a.Hf=f[0],a.Ue=f[1],a.Ve=f[2],this.ba&&uc(this.ba)):a.me=!1;a.Nd&&(a.Nd=!1,--this.R||ab(this));tm(this,a.Qa)}; -function ym(a,b,c){if((a=a.ka.listDisks)&&a.options){for(var d=0;d=this.D&&(this.aa&=-81,this.G=this.D=0);return a}; l.zl=function(a,b){this.D=sm[c].jd){var d=!1;this.G=0;var c=Em(this),e,f,g,h,k,m=c&31;switch(m){case 3:Em(this);Em(this);Fm(this);break;case 4:f=Em(this);this.Qa=f&3;e=this.B[this.Qa];Fm(this);Gm(this,(e.kb&-16777216)>>>24);break;case 5:case 6:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];e.Ya=d;f=e.xb=Em(this);g=Em(this);h=e.mb=Em(this);k=Em(this);e.wb=128< - None diff --git a/versions/pcjs/1.21.7/pc-dbg.js b/versions/pcjs/1.21.7/pc-dbg.js index 405ca7959..34786f72b 100644 --- a/versions/pcjs/1.21.7/pc-dbg.js +++ b/versions/pcjs/1.21.7/pc-dbg.js @@ -175,7 +175,7 @@ function $h(a,b){this.A-=-1===this.C?-1===this.D?this.B.Lj:this.B.Kj:this.B.Ij;r function ci(a,b){var c=this.L>>3&7;switch(c){case 0:this.aa=this.G;break;case 2:this.aa=this.M;break;case 3:this.aa=this.H;break;default:if(80286==this.ia||80386==this.ia&&4!=c&&5!=c){C.call(this,6);break}switch(c){case 1:this.aa=this.I;break;case 4:this.aa=I(this);break;case 5:this.aa=this.P;break;case 6:this.aa=this.K;break;case 7:this.aa=this.J}}return $h.call(this,0,b)} function di(a,b){switch(this.L>>3&7){case 0:b=this.Xa.Z;break;case 1:b=this.va.Z;break;case 2:b=this.ta.Z;break;case 3:b=this.vb.Z;break;case 4:if(80386<=this.ia){b=this.Ob.Z;break}C.call(this,6);b=a;break;case 5:if(80386<=this.ia){b=this.Pb.Z;break}default:C.call(this,6),b=a}-1!==this.C&&nd(this,2);return $h.call(this,0,b)} function Rh(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,h=e>>>16,e=(e&65535)+c*f;this.ja=e<<16|g&65535;this.wa=h+((e>>>16)+d*f)|0}else this.ja=a*b|0,this.wa=0}function ei(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,128)}function fi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,this.Ia)&this.R} -function gi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function hi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function Bi(){return uf(this)?1:0}function Ci(){return pf(this)?1:0}function Di(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0} +function gi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function hi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function ii(){return uf(this)?1:0}function Ci(){return pf(this)?1:0}function Di(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0} function Hi(){return pf(this)||sf(this)?0:1}function Ii(){return tf(this)?1:0}function Ji(){return tf(this)?0:1}function Ki(){return qf(this)?1:0}function Li(){return qf(this)?0:1}function Mi(){return!tf(this)!=!uf(this)?1:0}function Ni(){return!tf(this)!=!uf(this)?0:1}function Oi(){return sf(this)||!tf(this)!=!uf(this)?1:0}function Pi(){return sf(this)||!tf(this)!=!uf(this)?0:1}function Qi(a,b){return Ri.call(this,a,b,this.xa())}function Si(a,b){return Ti.call(this,a,b,this.xa())} function Ui(a,b){return Ri.call(this,a,b,this.I&31)}function Vi(a,b){return Ti.call(this,a,b,this.I&31)}function Wi(a,b){return Xi.call(this,a,b,this.xa())}function Yi(a,b){return Zi.call(this,a,b,this.xa())}function $i(a,b){return Xi.call(this,a,b,this.I&31)}function aj(a,b){return Zi.call(this,a,b,this.I&31)}function bj(a,b){var c=a-b|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255} function cj(a,b){var c=a-b|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function dj(a,b){vf(this,a&b,128);this.A-=-1===this.C?-1===this.D?this.B.ai:this.B.Tf:this.B.Tf;this.S|=2;return a}function ej(a,b){vf(this,a&b,this.Ia);this.A-=-1===this.C?-1===this.D?this.B.ai:this.B.Tf:this.B.Tf;this.S|=2;return a}function fj(a,b){var c=this.G&this.R,d=(1<<(this.I&31))-1;return a&~(d<>3;6>b?he.call(this):(we(this,a&7,this.Ce[b]),this.A-=12)}};M[38]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=(a&56)>>3;6>b?he.call(this):(this.Ce[b]=ve(this,a&7),this.A-=12)}};M[128]=function(){var a=this.Ma();uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[129]=function(){var a=this.Ma();uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}; M[130]=function(){var a=this.Ma();pf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[131]=function(){var a=this.Ma();pf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[132]=function(){var a=this.Ma();sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[133]=function(){var a=this.Ma();sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[134]=function(){var a=this.Ma();pf(this)||sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}; M[135]=function(){var a=this.Ma();pf(this)||sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[136]=function(){var a=this.Ma();tf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[137]=function(){var a=this.Ma();tf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[138]=function(){var a=this.Ma();qf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[139]=function(){var a=this.Ma();qf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}; -M[140]=function(){var a=this.Ma();!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[141]=function(){var a=this.Ma();!tf(this)==!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[142]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[143]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[144]=function(){qj.call(this,Bi)}; -M[145]=function(){qj.call(this,Bi)};M[146]=function(){qj.call(this,Ci)};M[147]=function(){qj.call(this,Di)};M[148]=function(){qj.call(this,Ei)};M[149]=function(){qj.call(this,Fi)};M[150]=function(){qj.call(this,Gi)};M[151]=function(){qj.call(this,Hi)};M[152]=function(){qj.call(this,Ii)};M[153]=function(){qj.call(this,Ji)};M[154]=function(){qj.call(this,Ki)};M[155]=function(){qj.call(this,Li)};M[156]=function(){qj.call(this,Mi)};M[157]=function(){qj.call(this,Ni)};M[158]=function(){qj.call(this,Oi)}; +M[140]=function(){var a=this.Ma();!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[141]=function(){var a=this.Ma();!tf(this)==!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[142]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[143]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[144]=function(){qj.call(this,ii)}; +M[145]=function(){qj.call(this,ii)};M[146]=function(){qj.call(this,Ci)};M[147]=function(){qj.call(this,Di)};M[148]=function(){qj.call(this,Ei)};M[149]=function(){qj.call(this,Fi)};M[150]=function(){qj.call(this,Gi)};M[151]=function(){qj.call(this,Hi)};M[152]=function(){qj.call(this,Ii)};M[153]=function(){qj.call(this,Ji)};M[154]=function(){qj.call(this,Ki)};M[155]=function(){qj.call(this,Li)};M[156]=function(){qj.call(this,Mi)};M[157]=function(){qj.call(this,Ni)};M[158]=function(){qj.call(this,Oi)}; M[159]=function(){qj.call(this,Pi)};M[160]=function(){pd(this,this.Ob.Z,this.ba,2);this.A-=this.B.Ie};M[161]=function(){this.U=this.ga;var a=D(this);this.Ob.load(a);this.A-=this.B.zc;this.U=-1};M[163]=function(){this.fa.call(this,Dh);-1!==this.D&&(this.A-=6)};M[164]=function(){this.fa.call(this,2==this.ba?Qi:Si);this.A-=-1===this.D?3:7};M[165]=function(){this.fa.call(this,2==this.ba?Ui:Vi);this.A-=-1===this.D?3:7};M[168]=function(){pd(this,this.Pb.Z,this.ba,2);this.A-=this.B.Ie}; M[169]=function(){this.U=this.ga;var a=D(this);this.Pb.load(a);this.A-=this.B.zc;this.U=-1};M[171]=function(){this.fa.call(this,Gh);-1!==this.D&&(this.A-=5)};M[172]=function(){this.fa.call(this,2==this.ba?Wi:Yi);this.A-=-1===this.D?3:7};M[173]=function(){this.fa.call(this,2==this.ba?$i:aj);this.A-=-1===this.D?3:7};M[175]=function(){this.W.call(this,2==this.ba?Nh:Ph)};M[178]=function(){this.W.call(this,Zh)};M[179]=function(){this.fa.call(this,Fh);-1!==this.D&&(this.A-=5)}; M[180]=function(){this.W.call(this,Wh)};M[181]=function(){this.W.call(this,Xh)}; @@ -597,7 +597,7 @@ var sp={3:{Vd:3,ie:0,name:aa.Zn},4:{Vd:2,ie:1,name:aa.Xn},5:{Vd:9,ie:7,name:aa.i m.Qb=function(a,b,c){var d=this;switch(b){case "listDisks":this.qa[b]=c;if(this.ga){b=[];for(a=0;ab.text?1:a.textb.value?1:a.value'+b+"");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tp(d,a)},!0;case "loadDrive":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&up(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.ja){c.parentNode.removeChild(c);break}this.qa[b]=c;c.onclick=function(){var a=d.qa.listDrives;a&&a.options&&d.A&&(a=ca(a.value, 10),(a=d.A[a])?(a=a.za)?(a=Ia(pp(a),"octet-stream",!0,a.Ng.replace(".json",".img")),w(a)):d.Na("No diskette loaded in drive."):d.Na("No diskette drive selected."))};return!0;case "mountDrive":if(!this.ja){c.parentNode.removeChild(c);break}this.qa[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;up(d,fa(b,!0),b,a)}return!1};return!0}return!1}; -m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}vp(this);hc(b,this,wp);lc(b,this,xp);this.ja&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)}; +m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}vp(this);hc(b,this,wp);lc(b,this,xp);yp(this,"None","",!0);this.ja&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)}; m.ic=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.V.dh){this.B=[];for(var c=0;cCp(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,h=void 0,h=0;ha.Bb||f[1]>a.ub)&&(this.Na('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.hb)),b=null);b?(a.za=b,a.kk=c,a.Le=d,Dp(this,c,d,b),f=b.info(),this.X|=128,this.Na('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.hb),a.Ae||e),a.zg=f[0],a.Nf=f[1],a.Of=f[2],this.V&&this.V.yd()):a.$e=!1;a.Ae&&(a.Ae=!1,--this.fa||rb(this));tp(this,a.hb)}; -function yp(a,b,c){if((a=a.qa.listDisks)&&a.options){for(var d=0;d=this.C&&(this.ma&=-81,this.L=this.C=0);return c}; @@ -760,23 +760,23 @@ Zq(a,g[1],!0);if(q)if(a.ua=q,void 0===g[2])a.O("begin assemble at "+Sq(q)),a.Ea= a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),a.O("\tbn [n]\tbreak after [n] instruction(s)");else{var H=F.charAt(1);if("l"==H){var L=0,L=L+pr(a,a.A),L=L+pr(a,a.ra);(L+=pr(a,a.ga))||a.O("no breakpoints")}else if("n"==H)a.Oa=Eq(a,v),a.O("break after "+a.Oa+" instruction(s)");else if(void 0===v)a.O("missing breakpoint address");else{var V={};if("*"!=v&&(V=Zq(a,v,!0,!0),!V))break a;v=null==V.Ra?v:u(V.Ra);"c"==H?null==V.Ra?(jq(a),a.O("all breakpoints cleared")):Rq(a, a.A,V)||Rq(a,a.ra,V)||Rq(a,a.ga,V)||a.O("breakpoint missing: "+Sq(V)):"i"==H?a.O("breakpoint "+(gc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (input)"):"o"==H?a.O("breakpoint "+(kc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (output)"):null!=V.Ra&&(br(a,V,E),"p"==H?a.Sd(a.A,V):"r"==H?a.Sd(a.ra,V):"w"==H?a.Sd(a.ga,V):a.O("unknown breakpoint command: "+H))}}}break;case "c":Fr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in wq)a.$a[bb]&&(Ba&&(Ba+= ","),Ba+=bb);Ba+=",state,symbols";a.O("dump memory commands:");a.O("\tdb [a] [#] dump # bytes at address a");a.O("\tdw [a] [#] dump # words at address a");a.O("\tdd [a] [#] dump # dwords at address a");a.O("\tdh [#] [#] dump # instructions from history");a.O("\tdi [#] dump descriptor info for IDT #");a.O("\tds [#] dump descriptor info for selector #");Ba.length&&a.O("dump extension commands:\n\t"+Ba)}else if("state"==ja){var Vb=Nr(a.V,!0);"console"==Ha?console.log(Vb):(Fr(a), -a.O(Vb))}else if("symbols"==ja)for(var wa=0;wa>>20;Da.ui=a.F.Pd+Da.bk;Da.yb=ce.sa[(Da.ui&ce.Gb)>>>ce.La];Da.Ui=Da.yb.Nd(Da.bk);Da.ck=(Te&4190208)>>>10;Da.vi=(Da.Ui&-4096)+Da.ck;Da.zb=ce.sa[(Da.vi&ce.Gb)>>>ce.La];Da.Vi=Da.zb.Nd(Da.ck);Da.Fk=(Da.Vi&-4096)+(Te&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+r(Te),qd=qd+(" %%"+dr(be.ui,be.Ui)),qd=qd+(" %%"+dr(be.vi,be.Vi,!0)), qd=qd+(" %%"+r(be.Fk));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Jr(a,P);break a}for(bb in wq)if(P[1]==bb){var En=a.$a[bb];En?(P.shift(),P.shift(),En(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Fn=ja,Gn=Ha,Hn="",In=0,tb=a.Fa,tc=a.ja;if(tc.length){var Db=+Fn||a.Ub,de=+Gn||10;isNaN(Db)?Db=de:Hn="more ";Db>tc.length&&(a.O("note: only "+tc.length+" available"),Db=tc.length); -tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ji=[];"call"==Gn&&(de=1E5,ji=["CALL"]);for(void 0!==Fn&&a.O(Db+" instructions earlier:");0=tc.length&&(tb=0);a.Ub=Db;In++;de--}}In||(a.O("no "+Hn+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift(); -var ki=P[0];if(ki){var Ve=Eq(a,ki);if(void 0===Ve||0>Ve||255>> -0,65536>4||1,mi="dd"==ia?4:"dw"==ia?2:1,Nn=0;Nnpi;pi++){var sg=a.Qa(ee,1),rg=rg|sg<<(ni++<<3);ni==mi&&(We+=r(rg,2*mi),We+=1==mi?7==pi?"-":" ":" ",rg=ni=0);oi+=32<=sg&&128>sg?String.fromCharCode(sg):"."}sd&&(sd+="\n");sd+=ja+" "+We+" "+oi}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var tg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(tg=2,On=65535,Pn=a.na,Qn=a.jb);var Rn=tg<<1,Sn=g[1]; +tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ki=[];"call"==Gn&&(de=1E5,ki=["CALL"]);for(void 0!==Fn&&a.O(Db+" instructions earlier:");0=tc.length&&(tb=0);a.Ub=Db;In++;de--}}In||(a.O("no "+Hn+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift(); +var li=P[0];if(li){var Ve=Eq(a,li);if(void 0===Ve||0>Ve||255>> +0,65536>4||1,ni="dd"==ia?4:"dw"==ia?2:1,Nn=0;Nnqi;qi++){var sg=a.Qa(ee,1),rg=rg|sg<<(oi++<<3);oi==ni&&(We+=r(rg,2*ni),We+=1==ni?7==qi?"-":" ":" ",rg=oi=0);pi+=32<=sg&&128>sg?String.fromCharCode(sg):"."}sd&&(sd+="\n");sd+=ja+" "+We+" "+pi}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var tg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(tg=2,On=65535,Pn=a.na,Qn=a.jb);var Rn=tg<<1,Sn=g[1]; if(null==Sn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var ug=Zq(a,Sn);if(ug)for(var vg=2;vgvi;){for(var uc=null,ns=256;Tc.Ra>>>0>>0;){Ze.Ra=a.tb(Tc,!0);if(null==Tc.Da||!ns--)break;Ze.Z=Un;if(uc=Lr(a,Ze))break;Ze.Z=a.tb(Tc);if(uc=Lr(a,Ze,!0)){Un=a.tb(Tc,!0);0wi;){for(var uc=null,ns=256;Tc.Ra>>>0>>0;){Ze.Ra=a.tb(Tc,!0);if(null==Tc.Da||!ns--)break;Ze.Z=Un;if(uc=Lr(a,Ze))break;Ze.Z=a.tb(Tc);if(uc=Lr(a,Ze,!0)){Un=a.tb(Tc,!0);0d.hb[0]&&(d.hb[0]=255,d.hb[1]--,0>d.hb[1]&&(d.hb[1]=255)));return e}function qj(a,b,c,d){a=a.G[b];c=a.$b[c];c.hb[a.Ib]=c.jc[a.Ib]=d;a.Ib^=1} -function rj(a,b){var c=a.G[b],d=c.Db|1;c.Db&=-16;return d}function wj(a,b,c){a=a.G[b];b=c&3;a.Db=a.Db&~(16<>2].$b[b&3],c,d,e)} +function rj(a,b){var c=a.G[b],d=c.Db|1;c.Db&=-16;return d}function sj(a,b,c){a=a.G[b];b=c&3;a.Db=a.Db&~(16<>2].$b[b&3],c,d,e)} function yj(a,b,c){b=a.G[b>>2].$b[b&3];b.yf&&b.kg&&b.Mf?(c&&(b.done=c),b.Qd||Dj(a,b,!0)):c&&c(!0)}function Dj(a,b,c){c&&(b.count=b.hb[1]<<8|b.hb[0],b.type=b.mode&12,b.Sh=b.Yc=!1);for(var d=!1;0<=b.count&&(c=b.tf<<16|b.gb[1]<<8|b.gb[0],4==b.type?(d=!0,function(c){b.kg.call(b.yf,b.Mf,-1,function(f,g){0>f&&(b.Sh||(b.Sh=!0),f=255);b.Qd||a.ha.Mc(c,f);(d=g)&&setTimeout(function(){Ej(b)||Dj(a,b)},0)})}(c)):8==b.type?(c=a.ha.Jb(c),0>b.kg.call(b.yf,b.Mf,c)&&(b.Yc=!0)):0!=b.type&&(b.Yc=!0)),!d&&!Ej(b););} function Ej(a){if(!a.Yc&&0<=--a.count&&(a.mode&32?(a.gb[0]--,0>a.gb[0]&&(a.gb[0]=255,a.gb[1]--,0>a.gb[1]&&(a.gb[1]=255))):(a.gb[0]++,255>>4,0,this.I,this.D,this.K),delete this.K);return!0};ak.prototype.Ub=function(){return!0}; @@ -472,8 +472,8 @@ function Jk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");e function sl(a,b){if(1==b)return a.oa[0]=Ok[0],a.oa[1]=Ok[7],a.oa;if(2==b){var c=a.D.ff;if(a.D===a.B){var d=a.B.Kc[0],c=d&7;d&16&&(c|=8);18!=a.B.Kc[1]&&(c|=32)}a.oa[0]=Ok[c&15];c=c&32?Qk:Pk;for(d=0;df;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.oa[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Kc[15]?c.Kc:Rk;for(f=0;16>f;f++)g=e[f]&63,m?(g|= (c.Kc[20]&12)<<4,c.Kc[16]&128&&(g&=-49,g|=(c.Kc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.oa[f]=[h,k,g,255]}a.La=!0}return a.oa}function dk(a,b,c,d){a.Ab=b;a.Xa=c;a.Ja=d} function ol(a,b){var c=!1;if(window&&a.Ab&&(!b||a.I)){var d=0,e=a.Ja?a.Ja:8,f=sl(a);null!=a.Xa[0]&&tl(a,3,a.Xa[0],d,e,8,a.Ab,f)&&(c=!0);d=a.Ja?0:2048;e=a.Ja?a.Ja:9;null!=a.Xa[1]&&(tl(a,1,a.Xa[1],d,e,14,a.Ab,Mk,Nk)&&(c=!0),a.Ja&&tl(a,a.Ra,a.Xa[1],0,a.Ja,14,a.Ab,f)&&(c=!0))}return c}function tl(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ul(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Zd&&ul(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m} -function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<va||!da?va:8,Hf=sj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac= -0;ac=va-2,dn=qd[ac>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,tj,uj,vj);J&&vl(Hf,tj+1,uj,vj)}sj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0a.Ea&&(a.Ea=0):a.Ea=-1} +function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<va||!da?va:8,Hf=tj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac= +0;ac=va-2,dn=qd[ac>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,uj,vj,wj);J&&vl(Hf,uj+1,vj,wj)}tj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0a.Ea&&(a.Ea=0):a.Ea=-1} function rl(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.D.ab[b])return;var c=a.D.ab[10],b=c&31,d=a.D.ab[11]&31,e=a.D.ab[9]&31,f=!1;a.D===a.B&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)xl(a);else{c=a.D.ab[15]+((a.D.ab[14]&63)<<8);a.ia!=c&&(xl(a),a.ia=c);d=d-b+1;if(a.td!=b||a.Gc!=d)a.td=b,a.Gc=d;a.Da=e+1;wl(a)}}} function xl(a){if(0<=a.ia){if(void 0!==a.S){var b=a.S[a.ia];if(b&131072){var b=b&-131073,c=a.ia%a.H,d=a.ia/a.H|0;a.I&&a.xa[a.I]&&(a.Ga&&yl(a,c,d,b,a.Ga),yl(a,c,d,b));a.S[a.ia]=b}}a.ia=-1}} function zl(a){var b,c=a.D;a.Zc=!1;var d=c.Hd[5];if(null!=d){b=1024;var e=0,f=c.Hd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Hc=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.Ra==ek&&(e=3,c.Hc=f&7)}d&8&&(b=1280);c=c.Be[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Zc=!0));b|=e}return b} @@ -546,7 +546,7 @@ var sm={3:{jd:3,yd:0,name:aa.Fm},4:{jd:2,yd:1,name:aa.Dm},5:{jd:9,yd:7,name:aa.N l.zb=function(a,b,c){var d=this;switch(b){case "listDisks":this.ka[b]=c;if(this.W){b=[];for(a=0;ab.text?1:a.textb.value?1:a.value'+b+"");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.ka[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tm(d,a)},!0;case "loadDrive":return this.ka[b]=c,c.onclick=function(){var a=d.ka.listDisks;a&&um(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[b]=c;c.onclick=function(){var a=d.ka.listDrives;a&&a.options&&d.B&&(a=ca(a.value, 10),(a=d.B[a])?(a=a.ta)?(a=za(pm(a),"octet-stream",!0,a.nh.replace(".json",".img")),n(a)):d.Ba("No diskette loaded in drive."):d.Ba("No diskette drive selected."))};return!0;case "mountDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;um(d,fa(b,!0),b,a)}return!1};return!0}return!1}; -l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.P=kb(a,"ChipSet");if((this.K=jc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}vm(this);Nb(b,this,wm);Pb(b,this,xm);this.Y&&ym(this,"Local Disk","?");ym(this,"Remote Disk","??");zm(this)||ab(this)}; +l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.P=kb(a,"ChipSet");if((this.K=jc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}vm(this);Nb(b,this,wm);Pb(b,this,xm);ym(this,"None","",!0);this.Y&&ym(this,"Local Disk","?");ym(this,"Remote Disk","??");zm(this)||ab(this)}; l.Vb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ba.jg){this.C=[];for(var c=0;cCm(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,h=void 0,h=0;ha.ib||f[1]>a.jb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ta=b,a.ij=c,a.Vd=d,Dm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Nd||e),a.Hf=f[0],a.Ue=f[1],a.Ve=f[2],this.ba&&uc(this.ba)):a.me=!1;a.Nd&&(a.Nd=!1,--this.R||ab(this));tm(this,a.Qa)}; -function ym(a,b,c){if((a=a.ka.listDisks)&&a.options){for(var d=0;d=this.D&&(this.aa&=-81,this.G=this.D=0);return a}; l.zl=function(a,b){this.D=sm[c].jd){var d=!1;this.G=0;var c=Em(this),e,f,g,h,k,m=c&31;switch(m){case 3:Em(this);Em(this);Fm(this);break;case 4:f=Em(this);this.Qa=f&3;e=this.B[this.Qa];Fm(this);Gm(this,(e.kb&-16777216)>>>24);break;case 5:case 6:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];e.Ya=d;f=e.xb=Em(this);g=Em(this);h=e.mb=Em(this);k=Em(this);e.wb=128<