diff options
author | Oxore <oxore@protonmail.com> | 2022-10-03 02:59:26 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2022-10-03 02:59:26 +0300 |
commit | 46696e1d57aa33b3bf1cd54cc78ef58dc14c8079 (patch) | |
tree | 5f36e6a9739c002e617a1d8c25f42e912fa4355e /vdp.hpp | |
parent | b5397045db290c234a1e779b64538933f93b37b6 (diff) |
Impl DMA VRAM fill
Diffstat (limited to 'vdp.hpp')
-rw-r--r-- | vdp.hpp | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -77,8 +77,14 @@ class VDP { uint8_t* base, uint32_t source_address, uint16_t destination_address, - uint16_t transfer_size); - static void runDMAVRAMFill(uint8_t* base); + uint16_t transfer_size, + uint8_t increment); + static void runDMAVRAMFill( + uint8_t* base, + uint16_t destination_address, + uint16_t transfer_size, + uint8_t increment, + uint16_t filler); static void runDMAVRAMCopy(uint8_t* base); static constexpr size_t kRegistersCount = static_cast<size_t>(RegID::kRegistersCount); @@ -90,7 +96,11 @@ class VDP { StatusRegister _status{}; bool _control_write_second_word{}; + // DMA Fill is ready to kick in, waiting for filler set to data port + bool _dma_ready{}; uint16_t _lines_counter{}; + // TODO: Make _address_mode of type AddressMode somehow and all private + // methods using it should be accepting AddressMode instead of uint8_t. uint8_t _address_mode{}; uint16_t _address{}; uint8_t _reg[kRegistersCount]{}; |