Files
weee/core/broadway/mmio/vi.hpp
T
2026-05-13 17:46:37 +02:00

140 lines
2.6 KiB
C++

#pragma once
#include <ircolib/types.hpp>
namespace weee::core {
struct mem;
struct video_interface {
video_interface(mem &);
void write16(ircolib::u32, ircolib::u16);
void write32(ircolib::u32, ircolib::u32);
union DCR {
struct {
unsigned e : 1;
unsigned r : 1;
unsigned i : 1;
unsigned d : 1;
unsigned le0 : 2;
unsigned le1 : 2;
unsigned fmt : 2;
unsigned : 6;
};
ircolib::u16 raw;
} dcr;
union HTR0 {
struct {
unsigned hlw : 9;
unsigned : 7;
unsigned hce : 7;
unsigned : 1;
unsigned hcs : 7;
unsigned : 1;
};
ircolib::u32 raw;
} htr0;
union HTR1 {
struct {
unsigned hsy : 7;
unsigned hbe : 10;
unsigned hbs : 10;
unsigned : 5;
};
ircolib::u32 raw;
} htr1;
union VTR {
struct {
unsigned equ : 4;
unsigned acv : 10;
unsigned : 2;
};
ircolib::u16 raw;
} vtr;
union VTO {
struct {
unsigned prb : 10;
unsigned : 6;
unsigned psb : 10;
unsigned : 6;
};
ircolib::u32 raw;
} vto, vte;
union BBI {
struct {
unsigned bs1 : 5;
unsigned be1 : 11;
unsigned bs3 : 5;
unsigned be3 : 11;
};
ircolib::u32 raw;
} bbei, bboi;
union TFBL {
struct {
unsigned : 9;
unsigned fbb : 15;
unsigned xof : 4;
unsigned : 4;
};
ircolib::u32 raw;
} tfbl;
union BFBL {
struct {
unsigned : 9;
unsigned fbb : 15;
unsigned y : 8;
};
ircolib::u32 raw;
} bfbl;
union FCT012 {
struct {
unsigned tap0 : 10;
unsigned tap1 : 10;
unsigned tap2 : 10;
unsigned : 2;
};
ircolib::u32 raw;
} fct0[3];
union FCT3456 {
struct {
unsigned tap0 : 8;
unsigned tap1 : 8;
unsigned tap2 : 8;
unsigned tap3 : 8;
};
ircolib::u32 raw;
} fct1[4];
union HSR {
struct {
unsigned stp : 9;
unsigned : 3;
unsigned hs_en : 1;
unsigned : 3;
};
ircolib::u16 raw;
} hsr;
bool viclk;
};
} // namespace weee::core