Revert "Revert "Merge branch 'feature/machine_and_kb' into master""
This reverts commit f2cd3756dd.
This commit is contained in:
@@ -1794,7 +1794,7 @@ mem_read_ram(uint32_t addr, void *priv)
|
||||
mem_log("Read B %02X from %08X\n", ram[addr], addr);
|
||||
#endif
|
||||
|
||||
if (AT)
|
||||
if (is286 || AT)
|
||||
addreadlookup(mem_logical_addr, addr);
|
||||
|
||||
return ram[addr];
|
||||
@@ -1809,7 +1809,7 @@ mem_read_ramw(uint32_t addr, void *priv)
|
||||
mem_log("Read W %04X from %08X\n", *(uint16_t *)&ram[addr], addr);
|
||||
#endif
|
||||
|
||||
if (AT)
|
||||
if (is286 || AT)
|
||||
addreadlookup(mem_logical_addr, addr);
|
||||
|
||||
return *(uint16_t *)&ram[addr];
|
||||
@@ -1824,7 +1824,7 @@ mem_read_raml(uint32_t addr, void *priv)
|
||||
mem_log("Read L %08X from %08X\n", *(uint32_t *)&ram[addr], addr);
|
||||
#endif
|
||||
|
||||
if (AT)
|
||||
if (is286 || AT)
|
||||
addreadlookup(mem_logical_addr, addr);
|
||||
|
||||
return *(uint32_t *)&ram[addr];
|
||||
@@ -2068,7 +2068,7 @@ mem_write_ram(uint32_t addr, uint8_t val, void *priv)
|
||||
if ((addr >= 0xa0000) && (addr <= 0xbffff))
|
||||
mem_log("Write B %02X to %08X\n", val, addr);
|
||||
#endif
|
||||
if (AT) {
|
||||
if (is286 || AT) {
|
||||
addwritelookup(mem_logical_addr, addr);
|
||||
mem_write_ramb_page(addr, val, &pages[addr >> 12]);
|
||||
} else
|
||||
@@ -2083,7 +2083,7 @@ mem_write_ramw(uint32_t addr, uint16_t val, void *priv)
|
||||
if ((addr >= 0xa0000) && (addr <= 0xbffff))
|
||||
mem_log("Write W %04X to %08X\n", val, addr);
|
||||
#endif
|
||||
if (AT) {
|
||||
if (is286 || AT) {
|
||||
addwritelookup(mem_logical_addr, addr);
|
||||
mem_write_ramw_page(addr, val, &pages[addr >> 12]);
|
||||
} else
|
||||
@@ -2098,7 +2098,7 @@ mem_write_raml(uint32_t addr, uint32_t val, void *priv)
|
||||
if ((addr >= 0xa0000) && (addr <= 0xbffff))
|
||||
mem_log("Write L %08X to %08X\n", val, addr);
|
||||
#endif
|
||||
if (AT) {
|
||||
if (is286 || AT) {
|
||||
addwritelookup(mem_logical_addr, addr);
|
||||
mem_write_raml_page(addr, val, &pages[addr >> 12]);
|
||||
} else
|
||||
@@ -2110,7 +2110,7 @@ static uint8_t
|
||||
mem_read_remapped(uint32_t addr, void *priv)
|
||||
{
|
||||
addr = 0xA0000 + (addr - remap_start_addr);
|
||||
if (AT)
|
||||
if (is286 || AT)
|
||||
addreadlookup(mem_logical_addr, addr);
|
||||
return ram[addr];
|
||||
}
|
||||
@@ -2120,7 +2120,7 @@ static uint16_t
|
||||
mem_read_remappedw(uint32_t addr, void *priv)
|
||||
{
|
||||
addr = 0xA0000 + (addr - remap_start_addr);
|
||||
if (AT)
|
||||
if (is286 || AT)
|
||||
addreadlookup(mem_logical_addr, addr);
|
||||
return *(uint16_t *)&ram[addr];
|
||||
}
|
||||
@@ -2130,7 +2130,7 @@ static uint32_t
|
||||
mem_read_remappedl(uint32_t addr, void *priv)
|
||||
{
|
||||
addr = 0xA0000 + (addr - remap_start_addr);
|
||||
if (AT)
|
||||
if (is286 || AT)
|
||||
addreadlookup(mem_logical_addr, addr);
|
||||
return *(uint32_t *)&ram[addr];
|
||||
}
|
||||
@@ -2141,7 +2141,7 @@ mem_write_remapped(uint32_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
uint32_t oldaddr = addr;
|
||||
addr = 0xA0000 + (addr - remap_start_addr);
|
||||
if (AT) {
|
||||
if (is286 || AT) {
|
||||
addwritelookup(mem_logical_addr, addr);
|
||||
mem_write_ramb_page(addr, val, &pages[oldaddr >> 12]);
|
||||
} else
|
||||
@@ -2154,7 +2154,7 @@ mem_write_remappedw(uint32_t addr, uint16_t val, void *priv)
|
||||
{
|
||||
uint32_t oldaddr = addr;
|
||||
addr = 0xA0000 + (addr - remap_start_addr);
|
||||
if (AT) {
|
||||
if (is286 || AT) {
|
||||
addwritelookup(mem_logical_addr, addr);
|
||||
mem_write_ramw_page(addr, val, &pages[oldaddr >> 12]);
|
||||
} else
|
||||
@@ -2167,7 +2167,7 @@ mem_write_remappedl(uint32_t addr, uint32_t val, void *priv)
|
||||
{
|
||||
uint32_t oldaddr = addr;
|
||||
addr = 0xA0000 + (addr - remap_start_addr);
|
||||
if (AT) {
|
||||
if (is286 || AT) {
|
||||
addwritelookup(mem_logical_addr, addr);
|
||||
mem_write_raml_page(addr, val, &pages[oldaddr >> 12]);
|
||||
} else
|
||||
@@ -2536,7 +2536,7 @@ mem_a20_init(void)
|
||||
flushmmucache();
|
||||
mem_a20_state = mem_a20_key | mem_a20_alt;
|
||||
} else {
|
||||
rammask = 0xfffff;
|
||||
rammask = is286 ? 0xffffff : 0xfffff;
|
||||
flushmmucache();
|
||||
mem_a20_key = mem_a20_alt = mem_a20_state = 0;
|
||||
}
|
||||
@@ -2662,15 +2662,20 @@ mem_reset(void)
|
||||
*/
|
||||
if (AT) {
|
||||
if (cpu_16bitbus) {
|
||||
/* 80186/286; maximum address space is 16MB. */
|
||||
/* 80286/386SX; maximum address space is 16MB. */
|
||||
m = 4096;
|
||||
} else {
|
||||
/* 80386+; maximum address space is 4GB. */
|
||||
/* 80386DX+; maximum address space is 4GB. */
|
||||
m = 1048576;
|
||||
}
|
||||
} else {
|
||||
/* 8088/86; maximum address space is 1MB. */
|
||||
m = 256;
|
||||
if (is286) {
|
||||
/* 80286; maximum address space is 16MB. */
|
||||
m = 4096;
|
||||
} else {
|
||||
/* 8088/86; maximum address space is 1MB. */
|
||||
m = 256;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2864,7 +2869,7 @@ mem_a20_recalc(void)
|
||||
int state;
|
||||
|
||||
if (! AT) {
|
||||
rammask = 0xfffff;
|
||||
rammask = is286 ? 0xffffff : 0xfffff;
|
||||
flushmmucache();
|
||||
mem_a20_key = mem_a20_alt = mem_a20_state = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user