Add Fkey handling
This commit is contained in:
+11
-6
@@ -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
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user