From 0d990b375cf9b27ff72f0a0ab0e524a6b9cac14f Mon Sep 17 00:00:00 2001 From: Ry Date: Fri, 18 Mar 2022 21:59:51 -0700 Subject: [PATCH] fox32rom: Add panic routine --- fox32rom.def | 1 + main.asm | 2 ++ panic.asm | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 panic.asm diff --git a/fox32rom.def b/fox32rom.def index 74a3f3d..6d270fc 100644 --- a/fox32rom.def +++ b/fox32rom.def @@ -7,6 +7,7 @@ get_mouse_position: jmp [0xF0040008] new_event: jmp [0xF004000C] wait_for_event: jmp [0xF0040010] get_next_event: jmp [0xF0040014] +panic: jmp [0xF0040018] ; generic drawing jump table draw_str_generic: jmp [0xF0041000] diff --git a/main.asm b/main.asm index e7913b3..4aee0fa 100644 --- a/main.asm +++ b/main.asm @@ -154,6 +154,7 @@ get_rom_version: #include "menu_bar.asm" #include "mouse.asm" #include "overlay.asm" + #include "panic.asm" #include "vsync.asm" @@ -170,6 +171,7 @@ get_rom_version: data.32 new_event data.32 wait_for_event data.32 get_next_event + data.32 panic ; generic drawing jump table org.pad 0xF0041000 diff --git a/panic.asm b/panic.asm new file mode 100644 index 0000000..83a5405 --- /dev/null +++ b/panic.asm @@ -0,0 +1,18 @@ +; panic routines + +; panic and hang +; inputs: +; r0: pointer to null-terminated string, or zero for none +; outputs: +; none, does not return +panic: + icl + brk + cmp r0, 0 + ifnz mov r0, panic_string + call debug_print +panic_loop: + jmp panic_loop + halt + +panic_string: data.str "Panic occurred!" data.8 10 data.8 0