|
|
| version 1.2, 2004/03/10 02:42:51 | version 1.3, 2004/03/10 23:01:07 |
|---|---|
| Line 49 BOOL memdbg32_paint(CMNVRAM *vram, BOOL | Line 49 BOOL memdbg32_paint(CMNVRAM *vram, BOOL |
| UINT mode; | UINT mode; |
| UINT8 use[16*256]; | UINT8 use[16*256]; |
| UINT32 pd[1024]; | |
| UINT pdmax; | |
| UINT i, j; | UINT i, j; |
| UINT32 pde; | UINT32 pde; |
| UINT32 pdea; | |
| UINT32 pte; | UINT32 pte; |
| char str[4]; | char str[4]; |
| Line 73 BOOL memdbg32_paint(CMNVRAM *vram, BOOL | Line 76 BOOL memdbg32_paint(CMNVRAM *vram, BOOL |
| memdbg32.pal + MEMDBG32_PALBDR); | memdbg32.pal + MEMDBG32_PALBDR); |
| ZeroMemory(use, sizeof(use)); | ZeroMemory(use, sizeof(use)); |
| if (CPU_STAT_PAGING) { | if (CPU_STAT_PAGING) { |
| pdmax = 0; | |
| for (i=0; i<1024; i++) { | for (i=0; i<1024; i++) { |
| pde = cpu_memoryread_d(CPU_STAT_PDE_BASE + (i * 4)); | pde = cpu_memoryread_d(CPU_STAT_PDE_BASE + (i * 4)); |
| if (pde & CPU_PDE_PRESENT) { | if (pde & CPU_PDE_PRESENT) { |
| pde &= CPU_PDE_BASEADDR_MASK; | for (j=0; j<pdmax; j++) { |
| for (j=0; j<1024; j++) { | if (!((pde ^ pd[j]) & CPU_PDE_BASEADDR_MASK)) { |
| pte = cpu_memoryread_d(pde + (j * 4)); | break; |
| if ((pte & CPU_PTE_PRESENT) && (pte < 0x1000000)) { | } |
| use[pte >> 12] = MEMDBG32_PALPAGE; | } |
| if (j < pdmax) { | |
| pd[j] |= pde & CPU_PDE_ACCESS; | |
| } | |
| else { | |
| pd[pdmax++] = pde; | |
| } | |
| } | |
| } | |
| for (i=0; i<pdmax; i++) { | |
| pde = pd[i]; | |
| pdea = pde & CPU_PDE_BASEADDR_MASK; | |
| for (j=0; j<1024; j++) { | |
| pte = cpu_memoryread_d(pdea + (j * 4)); | |
| if ((pte & CPU_PTE_PRESENT) && (pte < 0x1000000)) { | |
| if ((pde & CPU_PDE_ACCESS) && (pte & CPU_PTE_ACCESS)) { | |
| use[pte >> 12] = MEMDBG32_PALPAGE1; | |
| } | |
| else if (!use[pte >> 12]) { | |
| use[pte >> 12] = MEMDBG32_PALPAGE0; | |
| } | } |
| } | } |
| } | } |