mirror of https://github.com/bsnes-emu/bsnes.git
52 lines
946 B
C++
Executable File
52 lines
946 B
C++
Executable File
class ST0018 : public MMIO {
|
|
public:
|
|
void init();
|
|
void enable();
|
|
void power();
|
|
void reset();
|
|
|
|
uint8 mmio_read(unsigned addr);
|
|
void mmio_write(unsigned addr, uint8 data);
|
|
|
|
enum mode_t { Waiting, BoardUpload };
|
|
struct regs_t {
|
|
mode_t mode;
|
|
|
|
uint8 r3800;
|
|
uint8 r3800_01;
|
|
uint8 r3804;
|
|
|
|
unsigned w3804;
|
|
unsigned counter;
|
|
} regs;
|
|
|
|
enum PieceID {
|
|
Pawn = 0x00, //foot soldier
|
|
Lance = 0x04, //incense chariot
|
|
Knight = 0x08, //cassia horse
|
|
Silver = 0x0c, //silver general
|
|
Gold = 0x10, //gold general
|
|
Rook = 0x14, //flying chariot
|
|
Bishop = 0x18, //angle mover
|
|
King = 0x1c, //king
|
|
};
|
|
|
|
enum PieceFlag {
|
|
PlayerA = 0x20,
|
|
PlayerB = 0x40,
|
|
};
|
|
|
|
uint8 board[9 * 9 + 16];
|
|
|
|
private:
|
|
void op_board_upload();
|
|
void op_board_upload(uint8 data);
|
|
void op_b2();
|
|
void op_b3();
|
|
void op_b4();
|
|
void op_b5();
|
|
void op_query_chip();
|
|
};
|
|
|
|
extern ST0018 st0018;
|