summaryrefslogtreecommitdiff
path: root/vdp.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'vdp.hpp')
-rw-r--r--vdp.hpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/vdp.hpp b/vdp.hpp
index 9357377..030b38e 100644
--- a/vdp.hpp
+++ b/vdp.hpp
@@ -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;