diff --git a/docs/pcjs/demos/pc-dbg.js b/docs/pcjs/demos/pc-dbg.js index 846ed76da..5bae9f0ab 100644 --- a/docs/pcjs/demos/pc-dbg.js +++ b/docs/pcjs/demos/pc-dbg.js @@ -612,8 +612,8 @@ k.seek=function(a,b,c,d,e){var f=null,g=this.Na,h=this.eb[a];if(h){var t=h[b];if k.fill=function(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f>2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}function Tj(a,b){var c=-1;if(a&&b>2,c=(d>((b&3)<<3)&255;return c} k.write=function(a,b,c){if(this.Rf)return!1;if(b>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Hc?f=a.pd+a.Hc&&(a.Hc+=f-(a.pd+a.Hc)+1):(a.pd=f,a.Hc=1);d[f]=d[f]&~(255<=this.eb.length||t>=this.eb[h].length||r>=this.eb[h][t].length){c="sector (CHS="+h+":"+t+":"+r+") out of range ("+ -b+" changes applied)";b=-1;break}if(this.Rf){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.eb[h][t][r]){for(t=h.data.length;tb&&this.Y.Ba("unable to restore disk '"+this.Jd+": "+c);return b}; +k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0=this.eb.length||t>=this.eb[h].length||r>=this.eb[h][t].length){c="sector (CHS="+h+":"+t+":"+r+") out of range ("+ +b+" changes applied)";b=-1;break}if(this.Rf){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.eb[h][t][r]){for(t=h.data.length;tb&&-2!=b&&this.Y.Ba("Unable to restore disk '"+this.Jd+": "+c);return b}; k.toJSON=function(){var a=JSON.stringify(this.eb),a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,""),a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:"),a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");return a=a.replace(/(sector|length|data|pattern):/gm,'"$1":')}; function Uj(a){p.call(this,"FDC",a,Uj,262144);this.dmaRead=this.ej;this.dmaWrite=this.fj;this.dmaFormat=this.En;this.cf=null;if(a.autoMount&&(this.cf=a.autoMount,"string"==typeof this.cf))try{this.cf=eval("("+a.autoMount+")")}catch(b){xa("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.cf=null}this.Bc=[];this.wl=!Da("Mobi")&&window&&"FileReader"in window}Ya(p,Uj);l={};aa={}; var Vj={3:{Sd:3,ve:0,name:aa.Zq},4:{Sd:2,ve:1,name:aa.Xq},5:{Sd:9,ve:7,name:aa.kr},6:{Sd:9,ve:7,name:aa.Rq},7:{Sd:2,ve:0,name:aa.Tq},8:{Sd:1,ve:2,name:aa.Yq},10:{Sd:2,ve:7,name:aa.Sq},13:{Sd:6,ve:7,name:aa.Dq},15:{Sd:3,ve:0,name:aa.Wq}};k=Uj.prototype; diff --git a/docs/pcjs/demos/pc.js b/docs/pcjs/demos/pc.js index 576d77168..359c60447 100644 --- a/docs/pcjs/demos/pc.js +++ b/docs/pcjs/demos/pc.js @@ -582,8 +582,8 @@ k.seek=function(a,b,c,d,e){var f=null,g=this.La,h=this.Ra[a];if(h){var r=h[b];if k.fill=function(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f>2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}function Ii(a,b){var c=-1;if(a&&b>2,c=(d>((b&3)<<3)&255;return c} k.write=function(a,b,c){if(this.rf)return!1;if(b>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.vc?f=a.Yc+a.vc&&(a.vc+=f-(a.Yc+a.vc)+1):(a.Yc=f,a.vc=1);d[f]=d[f]&~(255<=this.Ra.length||r>=this.Ra[h].length||t>=this.Ra[h][r].length){c="sector (CHS="+h+":"+r+":"+t+") out of range ("+ -b+" changes applied)";b=-1;break}if(this.rf){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.Ra[h][r][t]){for(r=h.data.length;rb&&this.X.va("unable to restore disk '"+this.nd+": "+c);return b}; +k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0=this.Ra.length||r>=this.Ra[h].length||t>=this.Ra[h][r].length){c="sector (CHS="+h+":"+r+":"+t+") out of range ("+ +b+" changes applied)";b=-1;break}if(this.rf){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.Ra[h][r][t]){for(r=h.data.length;rb&&-2!=b&&this.X.va("Unable to restore disk '"+this.nd+": "+c);return b}; k.toJSON=function(){var a=JSON.stringify(this.Ra),a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,""),a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:"),a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");return a=a.replace(/(sector|length|data|pattern):/gm,'"$1":')}; function Ji(a){n.call(this,"FDC",a,Ji);this.dmaRead=this.qi;this.dmaWrite=this.ri;this.dmaFormat=this.Lm;this.ze=null;if(a.autoMount&&(this.ze=a.autoMount,"string"==typeof this.ze))try{this.ze=eval("("+a.autoMount+")")}catch(b){m("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.ze=null}this.tc=[];this.Dk=!va("Mobi")&&window&&"FileReader"in window}Ma(n,Ji);l={};aa={}; var Ki={3:{ud:3,Rd:0,name:aa.cq},4:{ud:2,Rd:1,name:aa.aq},5:{ud:9,Rd:7,name:aa.oq},6:{ud:9,Rd:7,name:aa.Vp},7:{ud:2,Rd:0,name:aa.Xp},8:{ud:1,Rd:2,name:aa.bq},10:{ud:2,Rd:7,name:aa.Wp},13:{ud:6,Rd:7,name:aa.Hp},15:{ud:3,Rd:0,name:aa.$p}};k=Ji.prototype; diff --git a/modules/pcjs/lib/disk.js b/modules/pcjs/lib/disk.js index e4a5a5dfe..16d7a173a 100644 --- a/modules/pcjs/lib/disk.js +++ b/modules/pcjs/lib/disk.js @@ -2022,7 +2022,7 @@ Disk.prototype.restore = function(deltas) */ else if (aDiskInfo[1] != null && this.dwChecksum != null && aDiskInfo[1] != this.dwChecksum) { sReason = "original checksum (" + aDiskInfo[1] + ") differs from current checksum (" + this.dwChecksum + ")"; - nChanges = -1; + nChanges = -2; } /* * Checksum is more important than disk path, and for now, I want the flexibility to move disk images. @@ -2082,7 +2082,12 @@ Disk.prototype.restore = function(deltas) } if (nChanges < 0) { - this.controller.notice("unable to restore disk '" + this.sDiskName + ": " + sReason); + /* + * We're suppressing checksum messages for the general public for now.... + */ + if (DEBUG || nChanges != -2) { + this.controller.notice("Unable to restore disk '" + this.sDiskName + ": " + sReason); + } } else { if (DEBUG && this.messageEnabled()) { this.printMessage('restore("' + this.sDiskName + '"): restored ' + nChanges + ' change(s)'); diff --git a/versions/pcjs/1.17.1/pc-dbg.js b/versions/pcjs/1.17.1/pc-dbg.js index 846ed76da..5bae9f0ab 100644 --- a/versions/pcjs/1.17.1/pc-dbg.js +++ b/versions/pcjs/1.17.1/pc-dbg.js @@ -612,8 +612,8 @@ k.seek=function(a,b,c,d,e){var f=null,g=this.Na,h=this.eb[a];if(h){var t=h[b];if k.fill=function(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f>2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}function Tj(a,b){var c=-1;if(a&&b>2,c=(d>((b&3)<<3)&255;return c} k.write=function(a,b,c){if(this.Rf)return!1;if(b>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Hc?f=a.pd+a.Hc&&(a.Hc+=f-(a.pd+a.Hc)+1):(a.pd=f,a.Hc=1);d[f]=d[f]&~(255<=this.eb.length||t>=this.eb[h].length||r>=this.eb[h][t].length){c="sector (CHS="+h+":"+t+":"+r+") out of range ("+ -b+" changes applied)";b=-1;break}if(this.Rf){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.eb[h][t][r]){for(t=h.data.length;tb&&this.Y.Ba("unable to restore disk '"+this.Jd+": "+c);return b}; +k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0=this.eb.length||t>=this.eb[h].length||r>=this.eb[h][t].length){c="sector (CHS="+h+":"+t+":"+r+") out of range ("+ +b+" changes applied)";b=-1;break}if(this.Rf){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.eb[h][t][r]){for(t=h.data.length;tb&&-2!=b&&this.Y.Ba("Unable to restore disk '"+this.Jd+": "+c);return b}; k.toJSON=function(){var a=JSON.stringify(this.eb),a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,""),a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:"),a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");return a=a.replace(/(sector|length|data|pattern):/gm,'"$1":')}; function Uj(a){p.call(this,"FDC",a,Uj,262144);this.dmaRead=this.ej;this.dmaWrite=this.fj;this.dmaFormat=this.En;this.cf=null;if(a.autoMount&&(this.cf=a.autoMount,"string"==typeof this.cf))try{this.cf=eval("("+a.autoMount+")")}catch(b){xa("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.cf=null}this.Bc=[];this.wl=!Da("Mobi")&&window&&"FileReader"in window}Ya(p,Uj);l={};aa={}; var Vj={3:{Sd:3,ve:0,name:aa.Zq},4:{Sd:2,ve:1,name:aa.Xq},5:{Sd:9,ve:7,name:aa.kr},6:{Sd:9,ve:7,name:aa.Rq},7:{Sd:2,ve:0,name:aa.Tq},8:{Sd:1,ve:2,name:aa.Yq},10:{Sd:2,ve:7,name:aa.Sq},13:{Sd:6,ve:7,name:aa.Dq},15:{Sd:3,ve:0,name:aa.Wq}};k=Uj.prototype; diff --git a/versions/pcjs/1.17.1/pc.js b/versions/pcjs/1.17.1/pc.js index 576d77168..359c60447 100644 --- a/versions/pcjs/1.17.1/pc.js +++ b/versions/pcjs/1.17.1/pc.js @@ -582,8 +582,8 @@ k.seek=function(a,b,c,d,e){var f=null,g=this.La,h=this.Ra[a];if(h){var r=h[b];if k.fill=function(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f>2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}function Ii(a,b){var c=-1;if(a&&b>2,c=(d>((b&3)<<3)&255;return c} k.write=function(a,b,c){if(this.rf)return!1;if(b>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.vc?f=a.Yc+a.vc&&(a.vc+=f-(a.Yc+a.vc)+1):(a.Yc=f,a.vc=1);d[f]=d[f]&~(255<=this.Ra.length||r>=this.Ra[h].length||t>=this.Ra[h][r].length){c="sector (CHS="+h+":"+r+":"+t+") out of range ("+ -b+" changes applied)";b=-1;break}if(this.rf){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.Ra[h][r][t]){for(r=h.data.length;rb&&this.X.va("unable to restore disk '"+this.nd+": "+c);return b}; +k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0=this.Ra.length||r>=this.Ra[h].length||t>=this.Ra[h][r].length){c="sector (CHS="+h+":"+r+":"+t+") out of range ("+ +b+" changes applied)";b=-1;break}if(this.rf){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.Ra[h][r][t]){for(r=h.data.length;rb&&-2!=b&&this.X.va("Unable to restore disk '"+this.nd+": "+c);return b}; k.toJSON=function(){var a=JSON.stringify(this.Ra),a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,""),a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:"),a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");return a=a.replace(/(sector|length|data|pattern):/gm,'"$1":')}; function Ji(a){n.call(this,"FDC",a,Ji);this.dmaRead=this.qi;this.dmaWrite=this.ri;this.dmaFormat=this.Lm;this.ze=null;if(a.autoMount&&(this.ze=a.autoMount,"string"==typeof this.ze))try{this.ze=eval("("+a.autoMount+")")}catch(b){m("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.ze=null}this.tc=[];this.Dk=!va("Mobi")&&window&&"FileReader"in window}Ma(n,Ji);l={};aa={}; var Ki={3:{ud:3,Rd:0,name:aa.cq},4:{ud:2,Rd:1,name:aa.aq},5:{ud:9,Rd:7,name:aa.oq},6:{ud:9,Rd:7,name:aa.Vp},7:{ud:2,Rd:0,name:aa.Xp},8:{ud:1,Rd:2,name:aa.bq},10:{ud:2,Rd:7,name:aa.Wp},13:{ud:6,Rd:7,name:aa.Hp},15:{ud:3,Rd:0,name:aa.$p}};k=Ji.prototype;