~maddie/STT-implementation

0498f90e33c864784a80996a9a1494e763041029 — kn0000 4 months ago b048caf
Added helper function for keyboard input
2 files changed, 17 insertions(+), 1 deletions(-)

M src/lib.rs
M src/main.rs
M src/lib.rs => src/lib.rs +16 -0
@@ 4,6 4,8 @@ pub const SCREEN_WIDTH: usize = 512;
pub const SCREEN_HEIGHT: usize = 512;
pub const SCREEN_UPDATE_ADDRESS: usize = 0x7FFFF;

use minifb::Key;

#[derive(Debug)]
pub struct Stack {
    buffer: [u16;STACK_SIZE],


@@ 139,3 141,17 @@ pub fn mem_to_buf(memory: &[u16]) -> Vec<u32> {
    }
    result
}

pub fn keys_to_state(keys: Vec<Key>) -> Vec<u16> { //output is using only 10 bits each to match with
    let mut result = 0u128;                        //rest of system
    for key in keys {                              //see minifb docs for what number each key is
        result &= 1 << (key as usize);
    }
    let mut output = Vec::new();
    for i in 0..11 {
        let slice = ((result>>(10*i))&0x3FF) as u16;
        output.push(slice);
    }
    output
}


M src/main.rs => src/main.rs +1 -1
@@ 1,5 1,5 @@
use std::{fs, io};
use minifb::{Window, WindowOptions};
use minifb::{Window, WindowOptions, Key};
use implementation::*;

fn main() {