diff options
Diffstat (limited to 'vdp.hpp')
-rw-r--r-- | vdp.hpp | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -57,8 +57,8 @@ class VDP { kScrollSize = 16, kWindowHorizontalPosition = 17, kWindowVertialPosition = 18, - kDMACounterLow = 19, - kDMACounterHigh = 20, + kDMALengthCounterLow = 19, + kDMALengthCounterHigh = 20, kDMASourceAddressLow = 21, kDMASourceAddressMid = 22, kDMASourceAddressHigh = 23, @@ -69,10 +69,18 @@ class VDP { void writeControl(uint16_t value); uint16_t readData(uint8_t address_mode, uint16_t address); uint16_t readStatusRegister() const; - + uint8_t* baseFromAddressMode(uint8_t address_mode); const char* addressModeToString(uint8_t address_mode); const char* regIDToString(RegID); + static void runDMAMemoryToVRAM( + uint8_t* base, + uint32_t source_address, + uint16_t destination_address, + uint16_t transfer_size); + static void runDMAVRAMFill(uint8_t* base); + static void runDMAVRAMCopy(uint8_t* base); + static constexpr size_t kRegistersCount = static_cast<size_t>(RegID::kRegistersCount); static constexpr size_t kVRAMSize = 64*1024; static constexpr size_t kCRAMSize = 64*2; |