Add Fkey handling
This commit is contained in:
+10
-5
@@ -200,7 +200,7 @@ export fn main() void = {
|
||||
case sdl3::EventType::QUIT =>
|
||||
run = false;
|
||||
case sdl3::EventType::WINDOW_RESIZED =>
|
||||
let dims = uxn::get_window_size(state);
|
||||
const dims = uxn::get_window_size(state);
|
||||
let w = ev.window.data1 / scale: i32;
|
||||
let h = ev.window.data2 / scale: i32;
|
||||
const wmod = w % scale: i32;
|
||||
@@ -285,10 +285,15 @@ export fn main() void = {
|
||||
const mods = ev.key.mod;
|
||||
const sym = sdl3::GetKeyFromScancode(scancode,mods,false);
|
||||
uxn::set_key_down(sym: u8,state);
|
||||
// Handle Debug
|
||||
if(key == sdl3::K_F2){
|
||||
fmt::println("Debug Print:")!;
|
||||
uxn::print_stack_debug(state);
|
||||
// Handle F Keys
|
||||
if(key == sdl3::K_F1){
|
||||
scale = (scale % 3) + 1;
|
||||
const dims = uxn::get_window_size(state);
|
||||
sdl3::SetWindowSize(win,dims.width: i32*scale: i32,dims.height: i32*scale: i32)!;
|
||||
}else if(key == sdl3::K_F2){
|
||||
uxn::emu_deo(0x0e,0x01,state);
|
||||
}else if(key == sdl3::K_F3){
|
||||
state.dev[0x0f] = 0xff;
|
||||
};
|
||||
// Handle keyboard controller keys
|
||||
// Ctrl -> A 0x01
|
||||
|
||||
+4
-1
@@ -168,7 +168,7 @@ fn emu_dei(port: u8, state: *uxn) u8 = {
|
||||
};
|
||||
|
||||
|
||||
fn emu_deo(port: u8, value: u8, state: *uxn) void = {
|
||||
export fn emu_deo(port: u8, value: u8, state: *uxn) void = {
|
||||
// fmt::printfln("Writing {:x} to port {:x}", value, port)!;
|
||||
state.dev[port] = value;
|
||||
switch(port) {
|
||||
@@ -176,6 +176,8 @@ fn emu_deo(port: u8, value: u8, state: *uxn) void = {
|
||||
state.ptr[0] = value;
|
||||
case 0x05 =>
|
||||
state.ptr[1] = value;
|
||||
case 0x0e =>
|
||||
print_stack_debug(state);
|
||||
case 0x11 =>
|
||||
let high = state.dev[0x10];
|
||||
let low = value;
|
||||
@@ -422,6 +424,7 @@ fn get_instruction(byte: u8) (instruction | error) = {
|
||||
};
|
||||
|
||||
export fn print_stack_debug(state: *uxn) void = {
|
||||
//TODO follow standard form
|
||||
fmt::println("Working Stack:")!;
|
||||
print_stack(false,state);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user