From a9f1a63900f4f8f3f4233148068b82afa54e5a0a Mon Sep 17 00:00:00 2001 From: PeronTheDuck Date: Tue, 28 Jan 2020 00:35:23 -0300 Subject: [PATCH] Finished rework --- src/handler.rs | 8 +++++++- src/main.rs | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/handler.rs b/src/handler.rs index 8faa36d..be9bbf0 100644 --- a/src/handler.rs +++ b/src/handler.rs @@ -69,7 +69,11 @@ impl ThreadedEmulator { }); println!("Cmd: {:?}", cmd); match cmd { - Cmd::Step => system.step()?, + Cmd::Step => { + system.step()?; + let page_02 = Vec::from(&system.ram[0x200..0x300]); + tdata.send(page_02); + } Cmd::Reset => { system.restart(); system.ram = *TEST_CODE; @@ -78,6 +82,8 @@ impl ThreadedEmulator { if let Err(e) = rcmd.recv_timeout(std::time::Duration::from_millis(1)) { if e == std::sync::mpsc::RecvTimeoutError::Timeout { system.step()?; + let page_02 = Vec::from(&system.ram[0x200..0x300]); + tdata.send(page_02); } else { panic!("Controller mpsc disconnected: {}", e) } diff --git a/src/main.rs b/src/main.rs index 790c315..fd46734 100644 --- a/src/main.rs +++ b/src/main.rs @@ -130,6 +130,7 @@ pub fn init(app: >k::Application) -> Result<(), ProgErr> { let drawing_area = drawing_area.clone(); let palette = palette.clone(); let img_m = img_m.clone(); + let system = emulator.system.clone(); emulator.rdata.attach(None, move |data: Vec<_>| { println!("Received page"); for line in data.chunks(16) { @@ -152,7 +153,7 @@ pub fn init(app: >k::Application) -> Result<(), ProgErr> { } } - if let Ok(system) = emulator.system.try_lock() { + if let Ok(system) = system.try_lock() { registers.set_text(&format!("{:#?}", system.registers)); } drawing_area.queue_draw();