aboutsummaryrefslogtreecommitdiff
path: root/src/table.hpp
blob: f1eaeb71b6b8a25853543c0be4d896fcc5585c1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef TABLE_HPP_
#define TABLE_HPP_

#include <functional>

#include "chip8.hpp"

class Chip8;

class Table {
  public:
    Table(Chip8* chip8);

  private:
    Chip8* chip8;

  public:
    using OpcodeFunction = std::function<void()>;
    OpcodeFunction table[0x10u];
    OpcodeFunction table0[0xFu];
    OpcodeFunction table8[0xFu];
    OpcodeFunction tableE[0xFu];
    OpcodeFunction tableF[0x66u];

    void Table0();
    void Table8();
    void TableE();
    void TableF();
};

#endif