--- np2/i286c/memory.c 2003/10/19 14:56:15 1.2 +++ np2/i286c/memory.c 2003/11/28 08:01:32 1.4 @@ -22,13 +22,13 @@ static void MEMCALL tram_wt(UINT32 addre I286_REMCLOCK -= vramop.tramwait; if (address < 0xa2000) { mem[address] = value; - tramupdate[(address >> 1) & 0x0fff] = 1; + tramupdate[LOW12(address >> 1)] = 1; gdcs.textdisp |= 1; } else if (address < 0xa3fe0) { if (!(address & 1)) { mem[address] = value; - tramupdate[(address >> 1) & 0x0fff] = 1; + tramupdate[LOW12(address >> 1)] = 1; gdcs.textdisp |= 1; } } @@ -36,7 +36,7 @@ static void MEMCALL tram_wt(UINT32 addre if (!(address & 1)) { if ((!(address & 2)) || (gdcs.msw_accessable)) { mem[address] = value; - tramupdate[(address >> 1) & 0x0fff] = 1; + tramupdate[LOW12(address >> 1)] = 1; gdcs.textdisp |= 1; } } @@ -44,7 +44,7 @@ static void MEMCALL tram_wt(UINT32 addre else if (address < 0xa5000) { if ((address & 1) && (cgwindow.writable & 1)) { cgwindow.writable |= 0x80; - font[cgwindow.high + ((address >> 1) & 0x0f)] = value; + fontrom[cgwindow.high + ((address >> 1) & 0x0f)] = value; } } } @@ -53,7 +53,7 @@ static void MEMCALL vram_w0(UINT32 addre I286_REMCLOCK -= vramop.vramwait; mem[address] = value; - vramupdate[address & 0x7fff] |= 1; + vramupdate[LOW15(address)] |= 1; gdcs.grphdisp |= 1; } @@ -61,7 +61,7 @@ static void MEMCALL vram_w1(UINT32 addre I286_REMCLOCK -= vramop.vramwait; mem[address + VRAM_STEP] = value; - vramupdate[address & 0x7fff] |= 2; + vramupdate[LOW15(address)] |= 2; gdcs.grphdisp |= 2; } @@ -72,7 +72,7 @@ static void MEMCALL grcg_rmw0(UINT32 add I286_REMCLOCK -= vramop.grcgwait; mask = ~value; - address &= 0x7fff; + address = LOW15(address); vramupdate[address] |= 1; gdcs.grphdisp |= 1; vram = mem + address; @@ -101,7 +101,7 @@ static void MEMCALL grcg_rmw1(UINT32 add I286_REMCLOCK -= vramop.grcgwait; mask = ~value; - address &= 0x7fff; + address = LOW15(address); vramupdate[address] |= 2; gdcs.grphdisp |= 2; vram = mem + address; @@ -128,7 +128,7 @@ static void MEMCALL grcg_tdw0(UINT32 add BYTE *vram; I286_REMCLOCK -= vramop.grcgwait; - address &= 0x7fff; + address = LOW15(address); vramupdate[address] |= 1; gdcs.grphdisp |= 1; vram = mem + address; @@ -152,7 +152,7 @@ static void MEMCALL grcg_tdw1(UINT32 add BYTE *vram; I286_REMCLOCK -= vramop.grcgwait; - address &= 0x7fff; + address = LOW15(address); vramupdate[address] |= 2; gdcs.grphdisp |= 2; vram = mem + address; @@ -178,7 +178,7 @@ static void MEMCALL egc_wt(UINT32 addres static void MEMCALL emmc_wt(UINT32 address, BYTE value) { - extmem.pageptr[(address >> 14) & 3][address & 0x3fff] = value; + extmem.pageptr[(address >> 14) & 3][LOW14(address)] = value; } static void MEMCALL i286_wn(UINT32 address, BYTE value) { @@ -203,10 +203,10 @@ static BYTE MEMCALL tram_rd(UINT32 addre } else if (address < 0xa5000) { if (address & 1) { - return(font[cgwindow.high + ((address >> 1) & 0x0f)]); + return(fontrom[cgwindow.high + ((address >> 1) & 0x0f)]); } else { - return(font[cgwindow.low + ((address >> 1) & 0x0f)]); + return(fontrom[cgwindow.low + ((address >> 1) & 0x0f)]); } } return(mem[address]); @@ -230,7 +230,7 @@ const BYTE *vram; BYTE ret; I286_REMCLOCK -= vramop.grcgwait; - vram = mem + (address & 0x7fff); + vram = mem + LOW15(address); ret = 0; if (!(grcg.modereg & 1)) { ret |= vram[VRAM0_B] ^ grcg.tile[0].b[0]; @@ -254,7 +254,7 @@ static BYTE MEMCALL grcg_tcr1(UINT32 add I286_REMCLOCK -= vramop.grcgwait; ret = 0; - vram = mem + (address & 0x7fff); + vram = mem + LOW15(address); if (!(grcg.modereg & 1)) { ret |= vram[VRAM1_B] ^ grcg.tile[0].b[0]; } @@ -277,13 +277,13 @@ static BYTE MEMCALL egc_rd(UINT32 addres static BYTE MEMCALL emmc_rd(UINT32 address) { - return(extmem.pageptr[(address >> 14) & 3][address & 0x3fff]); + return(extmem.pageptr[(address >> 14) & 3][LOW14(address)]); } static BYTE MEMCALL i286_itf(UINT32 address) { if (itf.bank) { - address = ITF_ADRS + (address & 0x7fff); + address = ITF_ADRS + LOW15(address); } return(mem[address]); } @@ -303,8 +303,8 @@ static void MEMCALL tramw_wt(UINT32 addr if (address < 0xa1fff) { STOREINTELWORD(mem + address, value); - tramupdate[(address >> 1) & 0x0fff] = 1; - tramupdate[((address + 1) >> 1) & 0x0fff] = 1; + tramupdate[LOW12(address >> 1)] = 1; + tramupdate[LOW12((address + 1) >> 1)] = 1; gdcs.textdisp |= 1; } else if (address == 0xa1fff) { @@ -319,7 +319,7 @@ static void MEMCALL tramw_wt(UINT32 addr value >>= 8; } mem[address] = (BYTE)value; - tramupdate[(address >> 1) & 0x0fff] = 1; + tramupdate[LOW12(address >> 1)] = 1; gdcs.textdisp |= 1; } else if (address < 0xa3fff) { @@ -329,7 +329,7 @@ static void MEMCALL tramw_wt(UINT32 addr } if ((!(address & 2)) || (gdcs.msw_accessable)) { mem[address] = (BYTE)value; - tramupdate[(address >> 1) & 0x0fff] = 1; + tramupdate[LOW12(address >> 1)] = 1; gdcs.textdisp |= 1; } } @@ -339,7 +339,7 @@ static void MEMCALL tramw_wt(UINT32 addr } if (cgwindow.writable & 1) { cgwindow.writable |= 0x80; - font[cgwindow.high + ((address >> 1) & 0x0f)] = (BYTE)value; + fontrom[cgwindow.high + ((address >> 1) & 0x0f)] = (BYTE)value; } } } @@ -348,15 +348,15 @@ static void MEMCALL tramw_wt(UINT32 addr #define GRCGW_NON(page) { \ I286_REMCLOCK -= vramop.vramwait; \ STOREINTELWORD(mem + address + VRAM_STEP*(page), value); \ - vramupdate[address & 0x7fff] |= (1 << page); \ - vramupdate[(address + 1) & 0x7fff] |= (1 << page); \ + vramupdate[LOW15(address)] |= (1 << page); \ + vramupdate[LOW15(address + 1)] |= (1 << page); \ gdcs.grphdisp |= (1 << page); \ } #define GRCGW_RMW(page) { \ BYTE *vram; \ I286_REMCLOCK -= vramop.grcgwait; \ - address &= 0x7fff; \ + address = LOW15(address); \ vramupdate[address] |= (1 << page); \ vramupdate[address + 1] |= (1 << page); \ gdcs.grphdisp |= (1 << page); \ @@ -402,7 +402,7 @@ static void MEMCALL tramw_wt(UINT32 addr #define GRCGW_TDW(page) { \ BYTE *vram; \ I286_REMCLOCK -= vramop.grcgwait; \ - address &= 0x7fff; \ + address = LOW15(address); \ vramupdate[address] |= (1 << page); \ vramupdate[address + 1] |= (1 << page); \ gdcs.grphdisp |= (1 << page); \ @@ -455,7 +455,7 @@ static void MEMCALL emmcw_wt(UINT32 addr BYTE *ptr; if ((address & 0x3fff) != 0x3fff) { - ptr = extmem.pageptr[(address >> 14) & 3] + (address & 0x3fff); + ptr = extmem.pageptr[(address >> 14) & 3] + LOW14(address); STOREINTELWORD(ptr, value); } else { @@ -488,24 +488,24 @@ static UINT16 MEMCALL tramw_rd(UINT32 ad return(LOADINTELWORD(mem + address)); } else if (address == 0xa3fff) { - return(mem[address] + (font[cgwindow.low] << 8)); + return(mem[address] + (fontrom[cgwindow.low] << 8)); } else if (address < 0xa4fff) { if (address & 1) { UINT16 ret; - ret = font[cgwindow.high + ((address >> 1) & 0x0f)]; - ret += font[cgwindow.low + (((address + 1) >> 1) & 0x0f)] << 8; + ret = fontrom[cgwindow.high + ((address >> 1) & 0x0f)]; + ret += fontrom[cgwindow.low + (((address + 1) >> 1) & 0x0f)] << 8; return(ret); } else { UINT16 ret; - ret = font[cgwindow.low + ((address >> 1) & 0x0f)]; - ret += font[cgwindow.high + ((address >> 1) & 0x0f)] << 8; + ret = fontrom[cgwindow.low + ((address >> 1) & 0x0f)]; + ret += fontrom[cgwindow.high + ((address >> 1) & 0x0f)] << 8; return(ret); } } else if (address == 0xa4fff) { - return((mem[0xa5000] << 8) | font[cgwindow.high + 15]); + return((mem[0xa5000] << 8) | fontrom[cgwindow.high + 15]); } return(LOADINTELWORD(mem + address)); } @@ -529,7 +529,7 @@ static UINT16 MEMCALL grcgw_tcr0(UINT32 I286_REMCLOCK -= vramop.grcgwait; ret = 0; - vram = mem + (address & 0x7fff); + vram = mem + LOW15(address); if (!(grcg.modereg & 1)) { ret |= LOADINTELWORD(vram + VRAM0_B) ^ grcg.tile[0].w; } @@ -552,7 +552,7 @@ static UINT16 MEMCALL grcgw_tcr1(UINT32 I286_REMCLOCK -= vramop.grcgwait; ret = 0; - vram = mem + (address & 0x7fff); + vram = mem + LOW15(address); if (!(grcg.modereg & 1)) { ret |= LOADINTELWORD(vram + VRAM1_B) ^ grcg.tile[0].w; } @@ -594,14 +594,14 @@ static UINT16 MEMCALL emmcw_rd(UINT32 ad BYTE *ptr; - ptr = extmem.pageptr[(address >> 14) & 3] + (address & 0x3fff); + ptr = extmem.pageptr[(address >> 14) & 3] + LOW14(address); return(LOADINTELWORD(ptr)); } static UINT16 MEMCALL i286w_itf(UINT32 address) { if (itf.bank) { - address = ITF_ADRS + (address & 0x7fff); + address = ITF_ADRS + LOW15(address); } return(LOADINTELWORD(mem + address)); } @@ -917,7 +917,7 @@ void MEMCALL i286_memstr_read(UINT seg, else { while(leng--) { *out++ = i286_memoryread(adrs + off); - off = (off + 1) & 0xffff; + off = LOW16(off + 1); } } } @@ -955,7 +955,7 @@ void MEMCALL i286_memstr_write(UINT seg, else { while(leng--) { i286_memorywrite(adrs + off, *out++); - off = (off + 1) & 0xffff; + off = LOW16(off + 1); } } }