Added separate dumpers for physical and linear address space, added more information to the TSS dump, fixed breakpoint updates when the address(es) are not yet valid, fixed recursion error when an UNPAGED block is accessed, made string instructions restartable after a fault, and enabled port-trapping in V86-mode.
This commit is contained in:
parent
afcdd055e1
commit
fc9a2a903f
7 changed files with 191 additions and 146 deletions
|
|
@ -491,13 +491,11 @@ Memory.prototype = {
|
|||
* @return {Memory}
|
||||
*/
|
||||
getPageBlock: function(addr, fWrite) {
|
||||
var block = this.cpu.mapPageBlock(addr, fWrite);
|
||||
/*
|
||||
* If mapPageBlock() fails -- which can easily happen if the page is not present or has insufficient
|
||||
* privileges -- then a fault will be triggered and block will be null. We still have to return a block,
|
||||
* but it will be our old "unpaged" self.
|
||||
* Even when mapPageBlock() fails (ie, when the page is not present or has insufficient privileges), it
|
||||
* will trigger a fault (since we don't set fSuppress), but it will still return a block (ie, an empty block).
|
||||
*/
|
||||
return block || this;
|
||||
return this.cpu.mapPageBlock(addr, fWrite);
|
||||
},
|
||||
/**
|
||||
* setPhysBlock(blockPhys, blockPDE, offPDE, blockPTE, offPTE)
|
||||
|
|
|
|||
Loading…
Reference in a new issue