summaryrefslogtreecommitdiff
path: root/vdp.hpp
blob: 0e911c9833565e1420ec27976d913d41e88a3c7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* SPDX-License-Identifier: Unlicense
 */

#pragma once

#include "bus.hpp"

#include <cstdio>

class VDP {
    public:
        VDP(const uint32_t base_address_a = VDP_START): base_address(base_address_a) {}
        uint32_t Read(uint32_t offset, enum bitness);
        void Write(uint32_t offset, enum bitness, uint32_t value);

        const uint32_t base_address;

    private:
        void writeControl(uint16_t value);

        static constexpr size_t kRegistersCount = 0x18;
        uint8_t _reg[kRegistersCount]{};
};