Add Fkey handling

This commit is contained in:
JJ Bliss
2026-05-05 11:16:28 -04:00
parent f5b5f76979
commit f69c0c9039
2 changed files with 15 additions and 7 deletions
+11 -6
View File
@@ -200,7 +200,7 @@ export fn main() void = {
case sdl3::EventType::QUIT => case sdl3::EventType::QUIT =>
run = false; run = false;
case sdl3::EventType::WINDOW_RESIZED => 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 w = ev.window.data1 / scale: i32;
let h = ev.window.data2 / scale: i32; let h = ev.window.data2 / scale: i32;
const wmod = w % scale: i32; const wmod = w % scale: i32;
@@ -285,12 +285,17 @@ export fn main() void = {
const mods = ev.key.mod; const mods = ev.key.mod;
const sym = sdl3::GetKeyFromScancode(scancode,mods,false); const sym = sdl3::GetKeyFromScancode(scancode,mods,false);
uxn::set_key_down(sym: u8,state); uxn::set_key_down(sym: u8,state);
// Handle Debug // Handle F Keys
if(key == sdl3::K_F2){ if(key == sdl3::K_F1){
fmt::println("Debug Print:")!; scale = (scale % 3) + 1;
uxn::print_stack_debug(state); 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 // Handle keyboard controller keys
// Ctrl -> A 0x01 // Ctrl -> A 0x01
if(key == sdl3::K_LCTRL || key == sdl3::K_RCTRL){ if(key == sdl3::K_LCTRL || key == sdl3::K_RCTRL){
uxn::set_controller_down(0x01,state); uxn::set_controller_down(0x01,state);
+4 -1
View File
@@ -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)!; // fmt::printfln("Writing {:x} to port {:x}", value, port)!;
state.dev[port] = value; state.dev[port] = value;
switch(port) { switch(port) {
@@ -176,6 +176,8 @@ fn emu_deo(port: u8, value: u8, state: *uxn) void = {
state.ptr[0] = value; state.ptr[0] = value;
case 0x05 => case 0x05 =>
state.ptr[1] = value; state.ptr[1] = value;
case 0x0e =>
print_stack_debug(state);
case 0x11 => case 0x11 =>
let high = state.dev[0x10]; let high = state.dev[0x10];
let low = value; let low = value;
@@ -422,6 +424,7 @@ fn get_instruction(byte: u8) (instruction | error) = {
}; };
export fn print_stack_debug(state: *uxn) void = { export fn print_stack_debug(state: *uxn) void = {
//TODO follow standard form
fmt::println("Working Stack:")!; fmt::println("Working Stack:")!;
print_stack(false,state); print_stack(false,state);