76 lines
1.6 KiB
C++
76 lines
1.6 KiB
C++
#pragma once
|
|
#include <ircolib/types.hpp>
|
|
|
|
namespace weee::core {
|
|
struct mem;
|
|
struct serial_interface {
|
|
serial_interface(mem &);
|
|
|
|
ircolib::u32 read32(ircolib::u32);
|
|
void write32(ircolib::u32, ircolib::u32);
|
|
|
|
union {
|
|
struct {
|
|
unsigned vbcpy : 4;
|
|
unsigned en : 4;
|
|
unsigned y : 8;
|
|
unsigned x : 8;
|
|
unsigned : 8;
|
|
};
|
|
|
|
ircolib::u32 raw;
|
|
} sipoll;
|
|
|
|
union {
|
|
struct {
|
|
unsigned tstart : 1;
|
|
unsigned channel : 2;
|
|
unsigned cben : 1;
|
|
unsigned cmden : 1;
|
|
unsigned inlength : 7;
|
|
unsigned : 1;
|
|
unsigned outlength : 7;
|
|
unsigned : 1;
|
|
unsigned chen : 1;
|
|
unsigned chnum : 2;
|
|
unsigned rdstintmsk : 1;
|
|
unsigned rdstint : 1;
|
|
unsigned comerr : 1;
|
|
unsigned tcintmsk : 1;
|
|
unsigned tcint : 1;
|
|
};
|
|
ircolib::u32 raw;
|
|
} sicomcsr;
|
|
|
|
union {
|
|
struct {
|
|
unsigned : 31;
|
|
unsigned lock : 1;
|
|
};
|
|
|
|
ircolib::u32 raw;
|
|
} clock_lk;
|
|
|
|
union {
|
|
struct {
|
|
unsigned joy3 : 6;
|
|
unsigned : 2;
|
|
unsigned joy2 : 6;
|
|
unsigned : 2;
|
|
unsigned joy1 : 6;
|
|
unsigned : 2;
|
|
unsigned unrun : 1;
|
|
unsigned ovrun0 : 1;
|
|
unsigned coll0 : 1;
|
|
unsigned norep0 : 1;
|
|
unsigned wrst0 : 1;
|
|
unsigned rdst0 : 1;
|
|
unsigned : 1;
|
|
unsigned wr : 1;
|
|
};
|
|
|
|
ircolib::u32 raw;
|
|
} sisr;
|
|
};
|
|
} // namespace weee::core
|