TSS stack pointer size depends on the TSS segment type, not the code segment type

This commit is contained in:
Jeff Parsons 2016-01-16 14:40:05 -08:00
commit 36624947d7

View file

@ -22,7 +22,7 @@
*
* You are required to include the above copyright notice in every source code file of every
* copy or modified version of this work, and to display that copyright notice on every screen
* that loads or runs any version of this software (see Computer.sCopyright).
* that loads or runs any version of this software (see Computer.COPYRIGHT).
*
* Some PCjs files also attempt to load external resource files, such as character-image files,
* ROM files, and disk image files. Those external resource files are not considered part of the
@ -822,7 +822,7 @@ X86Seg.prototype.loadDesc8 = function(addrDesc, sel, fProbe)
return X86.ADDR_INVALID;
}
addrTSS = cpu.segTSS.base;
if (!I386 || !(type & X86.DESC.ACC.NONSEG_386)) {
if (!I386 || !(cpu.segTSS.type & X86.DESC.ACC.NONSEG_386)) {
offSP = (cplNew << 2) + X86.TSS286.CPL0_SP;
lenSP = 2;
} else {