MCPcopy Create free account
hub / github.com/AppleWin/AppleWin / UpdatePagingForAltRW

Function UpdatePagingForAltRW

source/Memory.cpp:1485–1587  ·  view source on GitHub ↗

For Cpu6502_altRW() & Cpu65C02_altRW()

Source from the content-addressed store, hash-verified

1483
1484// For Cpu6502_altRW() & Cpu65C02_altRW()
1485static 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++)

Callers 1

UpdatePagingFunction · 0.85

Calls 1

QueryAuxMethod · 0.80

Tested by

no test coverage detected