For Cpu6502_altRW() & Cpu65C02_altRW()
| 1483 | |
| 1484 | // For Cpu6502_altRW() & Cpu65C02_altRW() |
| 1485 | static void UpdatePagingForAltRW(void) |
| 1486 | { |
| 1487 | UINT page; |
| 1488 | |
| 1489 | const BYTE memType = (GetCardMgr().QueryAux() == CT_Empty) ? MEM_FloatingBus : MEM_Normal; |
| 1490 | |
| 1491 | for (page = 0x00; page < 0x02; page++) |
| 1492 | memreadPageType[page] = SW_ALTZP ? memType : MEM_Normal; |
| 1493 | |
| 1494 | for (page = 0x02; page < 0xC0; page++) |
| 1495 | memreadPageType[page] = SW_AUXREAD ? memType : MEM_Normal; |
| 1496 | |
| 1497 | for (page = 0xC0; page < 0xD0; page++) |
| 1498 | { |
| 1499 | // NB. I/O SELECT' set on $C100-C7FF access |
| 1500 | // NB. I/O STROBE' set on $C800-CFFF access |
| 1501 | // So Cx ROM reads (both internal and slot/expansion) go via IO_Cxxx() - to set I/O SELECT/STROBE correctly |
| 1502 | // . and then read from memshadow[$Cx] |
| 1503 | memreadPageType[page] = MEM_IORead; |
| 1504 | } |
| 1505 | |
| 1506 | for (page = 0xD0; page < 0x100; page++) |
| 1507 | memreadPageType[page] = (SW_HIGHRAM && SW_ALTZP) ? memType : MEM_Normal; |
| 1508 | |
| 1509 | if (SW_80STORE) |
| 1510 | { |
| 1511 | for (page = 0x04; page < 0x08; page++) |
| 1512 | memreadPageType[page] = SW_PAGE2 ? memType : MEM_Normal; |
| 1513 | |
| 1514 | for (page = 0x20; page < 0x40; page++) |
| 1515 | memreadPageType[page] = (SW_PAGE2 && SW_HIRES) ? memType : MEM_Normal; |
| 1516 | } |
| 1517 | |
| 1518 | // |
| 1519 | |
| 1520 | for (page = 0x00; page < 0x02; page++) |
| 1521 | memwrite[page] = memshadow[page]; |
| 1522 | |
| 1523 | if ((SW_AUXREAD != 0) == (SW_AUXWRITE != 0)) |
| 1524 | { |
| 1525 | for (page = 0x02; page < 0xC0; page++) |
| 1526 | memwrite[page] = memshadow[page]; |
| 1527 | } |
| 1528 | |
| 1529 | if (SW_WRITERAM && SW_HIGHRAM) |
| 1530 | { |
| 1531 | for (page = 0xD0; page < 0x100; page++) |
| 1532 | memwrite[page] = memshadow[page]; |
| 1533 | } |
| 1534 | |
| 1535 | if (SW_80STORE) |
| 1536 | { |
| 1537 | for (page = 0x04; page < 0x08; page++) |
| 1538 | memwrite[page] = memshadow[page]; |
| 1539 | |
| 1540 | if (SW_HIRES) |
| 1541 | { |
| 1542 | for (page = 0x20; page < 0x40; page++) |
no test coverage detected