From 07d40c05d50dcafd7b3ab160d4130f33bc483a28 Mon Sep 17 00:00:00 2001 From: august kline Date: Fri, 5 Jul 2024 00:19:49 -0400 Subject: [PATCH] hehe the keyboard finally works --- src/main.rs | 11 ++++++---- src/roms/george.asm | 20 ++++-------------- src/roms/george.rom | Bin 32768 -> 32768 bytes src/roms/keyboard.asm | 46 +++++++++++++++++------------------------- 4 files changed, 29 insertions(+), 48 deletions(-) diff --git a/src/main.rs b/src/main.rs index d2d8818..78700d8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -53,18 +53,21 @@ fn main() { let mut stdin = async_stdin().keys(); print!("{}{}", cursor::Hide, clear::All,); - 'main: loop { + loop { screen.draw(); if let Some(Ok(key)) = stdin.next() { + keyboard.read_keys(key); match key { Key::Char('q') => { - break 'main; + break; } - Key::Char(' ') => cpu_controller.toggle(), + Key::Char('`') => cpu_controller.toggle(), Key::Char('\n') => cpu_controller.cycle(), Key::Char('i') => cpu_controller.irq(), - _ => keyboard.read_keys(key), + _ => {} } + } else { + keyboard.clear_keys(); } sleep(Duration::from_millis(16)); } diff --git a/src/roms/george.asm b/src/roms/george.asm index 0c57541..2ed46e1 100644 --- a/src/roms/george.asm +++ b/src/roms/george.asm @@ -34,10 +34,10 @@ cleardisplay: sta $6700,y ; this goes slightly over but it's fine iny bne cleardisplay - ; cli + cli main: - jsr printtext + ; jsr printtext ; key_zero: ; stz keyboard_cache, x ; dex @@ -45,21 +45,9 @@ main: ; fim: ; cli ; bra fim + jsr keyboard jmp main -printtext: - ldx 0 - loop: - lda text, x - beq end - sta $6000, x - inx - bra loop - end: - rts - -text: - .asciiz "hi <3" keyboard: ldy #0 @@ -171,7 +159,7 @@ isr: ; interrupt service routine pha phx phy - ; jsr irq + ; jsr keyboard ply plx pla diff --git a/src/roms/george.rom b/src/roms/george.rom index e161e97397f6989c08a5f3fae929aa7e128e2bc8..a7091a8e00f88ed2a0ebac52c736b2d67e2d90a0 100644 GIT binary patch delta 154 zcmZo@U}|V!nxGUCp`h8|quj87VJCyj2gjMrOhEb-S>Pr!(+9Q_2Uss`ofxdkrPZh) z)wq>m#m=1*yPTB2G&C|Kc&v0db!sX@38Mm7a%BRL$5_GuRF{#U@MYus*LBPd!i@lA CX;_{B delta 124 zcmZo@U}|V!nxJH;pwZx?)Ub?UuUW$fwz&)mFB-lkWMnGX7&9zj*va7XfqN!16Og{i z%=Cfn!~xa|uP2u2a