--- np2/i286x/memory.x86 2003/12/28 08:05:19 1.7 +++ np2/i286x/memory.x86 2004/01/28 23:36:13 1.10 @@ -9,12 +9,10 @@ section .bss global _mem extern _i286core extern _grcg - extern _extmem extern _gdcs extern _tramupdate extern _vramupdate extern _cgwindow -; extern ___font extern _vramop _mem resb 0x200000 @@ -122,6 +120,8 @@ wtram_a: cmp ecx, 000a3fe0h jc short wtram_m cmp ecx, 000a4000h jnc wcgwindow_s + test ecx, 2 + je short wtram_m cmp byte [_gdcs + gdcs_t.msw_accessable], 0 je short wtram_e wtram_m: shr ebx, 1 @@ -279,14 +279,13 @@ grcgtdw_end: pop ecx and ecx, 3fffh shr ebx, 12 and ebx, byte (3*4) - add ecx, [_extmem + extmem_t.pageptr + ebx] + add ecx, [_i286core + i286core_t.ems + ebx] mov [EXTMEMORY + ecx], dl pop ecx pop ebx ret @i286_wb: mov [MAINMEMORY + 1c8000h - 0e8000h + ecx], dl - pop ecx pop ebx ret @@ -403,7 +402,7 @@ grcgtcr_end: not al and ecx, 3fffh shr ebx, 12 and ebx, byte (3*4) - add ecx, [_extmem + extmem_t.pageptr + ebx] + add ecx, [_i286core + i286core_t.ems + ebx] mov al, [EXTMEMORY + ecx] pop ecx pop ebx @@ -455,6 +454,8 @@ wtramw_a: je short wword_a1fffh jc short wtramw_m cmp ecx, 000a3fffh jnc wcgwindoww_s + test ecx, 2 + je short wtramw_m cmp byte [_gdcs + gdcs_t.msw_accessable], 0 je short wtramw_e wtramw_m: and ebx, 1fffh @@ -647,14 +648,13 @@ egcw_wtodd: and ecx, 3fffh shr ebx, 12 and ebx, byte (3*4) - add ecx, [_extmem + extmem_t.pageptr + ebx] + add ecx, [_i286core + i286core_t.ems + ebx] mov [EXTMEMORY + ecx], dx pop ecx pop ebx ret @i286w_wb: mov [MAINMEMORY + 1c8000h - 0e8000h + ecx], dx - pop ecx pop ebx ret @@ -817,7 +817,7 @@ egcw_rdodd: and ecx, 3fffh shr ebx, 12 and ebx, byte (3*4) - add ecx, [_extmem + extmem_t.pageptr + ebx] + add ecx, [_i286core + i286core_t.ems + ebx] mov ax, [EXTMEMORY + ecx] pop ecx pop ebx @@ -988,7 +988,7 @@ section .text align 16 writeextmem_w: %if USE_HIMEM - cmp ecx, 10ffefh ; HIMEM + cmp ecx, (USE_HIMEM - 1) jae near writehimem_w %endif push ebx @@ -1026,7 +1026,7 @@ writemain_b: mov [MAINMEMORY + ecx], d align 16 writeextmem_b: %if USE_HIMEM - cmp ecx, 10fff0h ; HIMEM + cmp ecx, USE_HIMEM jae near writehimem %endif push ebx @@ -1043,7 +1043,7 @@ writeextmem_b: align 16 readmemory_w: %if USE_HIMEM - cmp ecx, 10ffefh ; HIMEM + cmp ecx, (USE_HIMEM - 1) jae near readhimem_w %endif push ebx @@ -1078,7 +1078,7 @@ readmain_b: mov al, [MAINMEMORY + ecx align 16 readmemory_b: %if USE_HIMEM - cmp ecx, 10fff0h ; HIMEM + cmp ecx, USE_HIMEM jae near readhimem %endif push ebx