Add other miscellanii to register view
This commit is contained in:
parent
4a6288147d
commit
d6957ecd09
|
@ -33,7 +33,7 @@ impl RegisterWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn show_interrupts(&mut self, ui: &mut Ui) {
|
fn show_interrupts(&mut self, ui: &mut Ui) {
|
||||||
let row_height = ui.spacing().interact_size.y;
|
let row_height = self.row_height(ui);
|
||||||
let [mut raw_intpnd, mut raw_intenb] = self.read_address(0x0005f800);
|
let [mut raw_intpnd, mut raw_intenb] = self.read_address(0x0005f800);
|
||||||
let mut intenb = InterruptReg::parse(raw_intenb);
|
let mut intenb = InterruptReg::parse(raw_intenb);
|
||||||
let mut intpnd = InterruptReg::parse(raw_intpnd);
|
let mut intpnd = InterruptReg::parse(raw_intpnd);
|
||||||
|
@ -126,7 +126,7 @@ impl RegisterWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn show_display_status(&mut self, ui: &mut Ui) {
|
fn show_display_status(&mut self, ui: &mut Ui) {
|
||||||
let row_height = ui.spacing().interact_size.y;
|
let row_height = self.row_height(ui);
|
||||||
let mut raw_dpstts = self.read_address(0x0005f820);
|
let mut raw_dpstts = self.read_address(0x0005f820);
|
||||||
let mut dpstts = DisplayReg::parse(raw_dpstts);
|
let mut dpstts = DisplayReg::parse(raw_dpstts);
|
||||||
ui.section("Display", |ui| {
|
ui.section("Display", |ui| {
|
||||||
|
@ -208,7 +208,7 @@ impl RegisterWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn show_drawing_status(&mut self, ui: &mut Ui) {
|
fn show_drawing_status(&mut self, ui: &mut Ui) {
|
||||||
let row_height = ui.spacing().interact_size.y;
|
let row_height = self.row_height(ui);
|
||||||
let [mut raw_xpstts, raw_xpctrl] = self.read_address(0x0005f840);
|
let [mut raw_xpstts, raw_xpctrl] = self.read_address(0x0005f840);
|
||||||
let mut xpstts = DrawingReg::parse(raw_xpstts);
|
let mut xpstts = DrawingReg::parse(raw_xpstts);
|
||||||
ui.section("Drawing", |ui| {
|
ui.section("Drawing", |ui| {
|
||||||
|
@ -306,7 +306,7 @@ impl RegisterWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn show_colors(&mut self, ui: &mut Ui) {
|
fn show_colors(&mut self, ui: &mut Ui) {
|
||||||
let row_height = ui.spacing().interact_size.y;
|
let row_height = self.row_height(ui);
|
||||||
let registers = self.registers.borrow();
|
let registers = self.registers.borrow();
|
||||||
ui.section("Colors", |ui| {
|
ui.section("Colors", |ui| {
|
||||||
TableBuilder::new(ui)
|
TableBuilder::new(ui)
|
||||||
|
@ -476,6 +476,127 @@ impl RegisterWindow {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn show_objects(&mut self, ui: &mut Ui) {
|
||||||
|
let row_height = self.row_height(ui);
|
||||||
|
ui.section("Objects", |ui| {
|
||||||
|
let width = ui.available_width();
|
||||||
|
TableBuilder::new(ui)
|
||||||
|
.column(Column::exact(width * 0.25))
|
||||||
|
.column(Column::exact(width * 0.25))
|
||||||
|
.column(Column::exact(width * 0.5))
|
||||||
|
.cell_layout(Layout::left_to_right(Align::Center).with_main_align(Align::RIGHT))
|
||||||
|
.body(|mut body| {
|
||||||
|
body.row(row_height, |mut row| {
|
||||||
|
row.col(|_ui| {});
|
||||||
|
row.col(|ui| {
|
||||||
|
ui.add_sized(ui.available_size(), Label::new("Start"));
|
||||||
|
});
|
||||||
|
row.col(|ui| {
|
||||||
|
ui.add_sized(ui.available_size(), Label::new("End"));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
let mut spts = self.read_address::<[u16; 4]>(0x0005f848);
|
||||||
|
let prevs = std::iter::once(0u16).chain(spts.map(|i| (i + 1) & 0x03ff));
|
||||||
|
let mut changed = false;
|
||||||
|
for (index, (spt, prev)) in spts.iter_mut().zip(prevs).enumerate() {
|
||||||
|
body.row(row_height, |mut row| {
|
||||||
|
row.col(|ui| {
|
||||||
|
ui.label(format!("SPT{index}"));
|
||||||
|
});
|
||||||
|
row.col(|ui| {
|
||||||
|
ui.with_layout(Layout::right_to_left(Align::Center), |ui| {
|
||||||
|
ui.label(prev.to_string());
|
||||||
|
});
|
||||||
|
});
|
||||||
|
row.col(|ui| {
|
||||||
|
if ui.add(NumberEdit::new(spt).range(0..1024)).changed() {
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if changed {
|
||||||
|
self.memory.write(self.sim_id, 0x0005f848, &spts);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ui.allocate_space(ui.available_size_before_wrap());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fn show_misc(&mut self, ui: &mut Ui) {
|
||||||
|
let row_height = self.row_height(ui);
|
||||||
|
let registers = self.registers.borrow();
|
||||||
|
ui.section("Misc.", |ui| {
|
||||||
|
let width = ui.available_width();
|
||||||
|
TableBuilder::new(ui)
|
||||||
|
.column(Column::exact(width * 0.5))
|
||||||
|
.column(Column::exact(width * 0.5))
|
||||||
|
.cell_layout(Layout::left_to_right(Align::Center).with_main_align(Align::RIGHT))
|
||||||
|
.body(|mut body| {
|
||||||
|
body.row(row_height, |mut row| {
|
||||||
|
row.col(|ui| {
|
||||||
|
ui.label("FRMCYC");
|
||||||
|
});
|
||||||
|
row.col(|ui| {
|
||||||
|
let mut frmcyc = read_address::<u16>(®isters, 0x0005f82e);
|
||||||
|
ui.with_layout(Layout::right_to_left(Align::Center), |ui| {
|
||||||
|
if ui.add(NumberEdit::new(&mut frmcyc).range(0..32)).changed() {
|
||||||
|
self.memory.write(self.sim_id, 0x0005f82e, &frmcyc);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
let mut cta = read_address::<u16>(®isters, 0x0005f830);
|
||||||
|
body.row(row_height, |mut row| {
|
||||||
|
row.col(|ui| {
|
||||||
|
ui.label("CTA");
|
||||||
|
});
|
||||||
|
row.col(|ui| {
|
||||||
|
ui.with_layout(Layout::right_to_left(Align::Center), |ui| {
|
||||||
|
ui.add_enabled(
|
||||||
|
false,
|
||||||
|
NumberEdit::new(&mut cta).arrows(false).hex(true),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
body.row(row_height, |mut row| {
|
||||||
|
row.col(|ui| {
|
||||||
|
ui.label("CTA_L");
|
||||||
|
});
|
||||||
|
row.col(|ui| {
|
||||||
|
let mut cta_l = cta & 0xff;
|
||||||
|
ui.with_layout(Layout::right_to_left(Align::Center), |ui| {
|
||||||
|
ui.add_enabled(
|
||||||
|
false,
|
||||||
|
NumberEdit::new(&mut cta_l).arrows(false).hex(true),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
body.row(row_height, |mut row| {
|
||||||
|
row.col(|ui| {
|
||||||
|
ui.label("CTA_R");
|
||||||
|
});
|
||||||
|
row.col(|ui| {
|
||||||
|
let mut cta_r = (cta >> 8) & 0xff;
|
||||||
|
ui.with_layout(Layout::right_to_left(Align::Center), |ui| {
|
||||||
|
ui.add_enabled(
|
||||||
|
false,
|
||||||
|
NumberEdit::new(&mut cta_r).arrows(false).hex(true),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
ui.allocate_space(ui.available_size_before_wrap());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fn row_height(&self, ui: &mut Ui) -> f32 {
|
||||||
|
ui.spacing().interact_size.y + ui.style().visuals.selection.stroke.width
|
||||||
|
}
|
||||||
|
|
||||||
fn read_address<T: MemoryValue>(&self, address: usize) -> T {
|
fn read_address<T: MemoryValue>(&self, address: usize) -> T {
|
||||||
read_address(&self.registers.borrow(), address)
|
read_address(&self.registers.borrow(), address)
|
||||||
}
|
}
|
||||||
|
@ -505,7 +626,7 @@ impl AppWindow for RegisterWindow {
|
||||||
CentralPanel::default().show(ctx, |ui| {
|
CentralPanel::default().show(ctx, |ui| {
|
||||||
ScrollArea::vertical().show(ui, |ui| {
|
ScrollArea::vertical().show(ui, |ui| {
|
||||||
ui.horizontal_top(|ui| {
|
ui.horizontal_top(|ui| {
|
||||||
let width = ui.available_width() - (ui.spacing().item_spacing.x * 6.0);
|
let width = ui.available_width() - (ui.spacing().item_spacing.x * 8.0);
|
||||||
StripBuilder::new(ui)
|
StripBuilder::new(ui)
|
||||||
.size(Size::exact(width * 0.2))
|
.size(Size::exact(width * 0.2))
|
||||||
.size(Size::exact(width * 0.2))
|
.size(Size::exact(width * 0.2))
|
||||||
|
@ -528,6 +649,16 @@ impl AppWindow for RegisterWindow {
|
||||||
strip.cell(|ui| {
|
strip.cell(|ui| {
|
||||||
self.show_colors(ui);
|
self.show_colors(ui);
|
||||||
});
|
});
|
||||||
|
strip.strip(|nested| {
|
||||||
|
nested.sizes(Size::remainder(), 2).vertical(|mut strip| {
|
||||||
|
strip.cell(|ui| {
|
||||||
|
self.show_objects(ui);
|
||||||
|
});
|
||||||
|
strip.cell(|ui| {
|
||||||
|
self.show_misc(ui);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue