ram debugger

This commit is contained in:
kirjavascript 2023-03-11 19:08:49 +00:00
parent fbd4c4149a
commit 14093014af

View file

@ -18,22 +18,27 @@ impl Default for Debug {
}
}
const ASCII: &str = r##"................................ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~................................. ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"##;
impl Debug {
pub fn render(&mut self, ctx: &egui::Context, emu: &emu::Megadrive) {
cpu::cpu_window(&ctx, &emu);
palette::palette_window(&ctx, &emu);
self.vram.render(&ctx, &emu);
const ASCII: &str = r##"................................ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~................................. ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ"##;
egui::Window::new("memory")
.show(ctx, |ui| {
let tabs: [(&str, usize, Box<dyn Fn(usize) -> u8>); 2] = [
("RAM", 0x10000, Box::new(|offset: usize|
let tabs: [(&str, usize, Box<dyn Fn(usize) -> u8>); 4] = [
("68K RAM", 0x10000, Box::new(|offset: usize|
emu.core.mem.ram[offset])),
("Z80 RAM", 0x2000, Box::new(|offset: usize|
emu.core.mem.z80.read_byte(offset as _))),
("ROM", emu.core.mem.rom.size(), Box::new(|offset: usize|
emu.core.mem.rom.read_byte(offset as _))),
("IO", 0x20, Box::new(|offset: usize|
emu.core.mem.io.read_byte(offset as _))),
];
let (selected_name, total_bytes, accessor) = &tabs[self.tab_index];
@ -66,7 +71,7 @@ impl Debug {
.map(|offset| {
format!("{}", ASCII.chars().nth(accessor(offset) as _).unwrap_or('.'))
}).collect::<String>();
ui.monospace(format!("{:04X} {} {}", i * 16, bytes, ascii));
ui.monospace(format!("{:06X} {} {}", i * 16, bytes, ascii));
}
});