// generated by bindings.kts #pragma once #include "call.h" struct return2 { unsigned int return0; unsigned int return1; }; struct return3 { unsigned int return0; unsigned int return1; unsigned int return2; }; struct return4 { unsigned int return0; unsigned int return1; unsigned int return2; unsigned int return3; }; struct return5 { unsigned int return0; unsigned int return1; unsigned int return2; unsigned int return3; unsigned int return4; }; struct return6 { unsigned int return0; unsigned int return1; unsigned int return2; unsigned int return3; unsigned int return4; unsigned int return5; }; struct return7 { unsigned int return0; unsigned int return1; unsigned int return2; unsigned int return3; unsigned int return4; unsigned int return5; unsigned int return6; }; struct return8 { unsigned int return0; unsigned int return1; unsigned int return2; unsigned int return3; unsigned int return4; unsigned int return5; unsigned int return6; unsigned int return7; }; // fox32rom definitions // system jump table static inline struct return3 get_rom_version(void) { struct return3 result_0; call(0xF0040000); ret(0, result_0.return0); ret(1, result_0.return1); ret(2, result_0.return2); return result_0; } static inline void system_vsync_handler(void) { call(0xF0040004); } static inline void get_mouse_position(void) { call(0xF0040008); } static inline void new_event(void) { call(0xF004000C); } static inline void wait_for_event(void) { call(0xF0040010); } static inline void get_next_event(void) { call(0xF0040014); } static inline void panic(void) { call(0xF0040018); } static inline void get_mouse_button(void) { call(0xF004001C); } static inline void scancode_to_ascii(void) { call(0xF0040020); } static inline void shift_pressed(void) { call(0xF0040024); } static inline void shift_released(void) { call(0xF0040028); } static inline void caps_pressed(void) { call(0xF004002C); } static inline void poweroff(void) { call(0xF0040030); } // generic drawing jump table static inline void draw_str_generic(void) { call(0xF0041000); } static inline void draw_format_str_generic(void) { call(0xF0041004); } static inline void draw_decimal_generic(void) { call(0xF0041008); } static inline void draw_hex_generic(void) { call(0xF004100C); } static inline void draw_font_tile_generic(void) { call(0xF0041010); } static inline void draw_tile_generic(void) { call(0xF0041014); } static inline void set_tilemap(void) { call(0xF0041018); } static inline void draw_pixel_generic(void) { call(0xF004101C); } static inline void draw_filled_rectangle_generic(void) { call(0xF0041020); } static inline void get_tilemap(void) { call(0xF0041024); } // background jump table static inline void fill_background( unsigned int color ) { parameter(0, color); call(0xF0042000); } static inline unsigned short draw_str_to_background( char* str, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color ) { unsigned short result_1; parameter(0, str); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); call(0xF0042004); ret(1, result_1); return result_1; } static inline unsigned short draw_format_str_to_background( char* str, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color, unsigned int format_value_0, unsigned int format_value_1, unsigned int format_value_2, unsigned int format_value_3, unsigned int format_value_4, unsigned int format_value_5 ) { unsigned short result_1; parameter(0, str); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); parameter(10, format_value_0); parameter(11, format_value_1); parameter(12, format_value_2); parameter(13, format_value_3); parameter(14, format_value_4); parameter(15, format_value_5); call(0xF0042008); ret(1, result_1); return result_1; } static inline unsigned short draw_decimal_to_background( unsigned int value, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color ) { unsigned short result_1; parameter(0, value); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); call(0xF004200C); ret(1, result_1); return result_1; } static inline unsigned short draw_hex_to_background( unsigned int value, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color ) { unsigned short result_1; parameter(0, value); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); call(0xF0042010); ret(1, result_1); return result_1; } static inline void draw_font_tile_to_background( unsigned char tile, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color ) { parameter(0, tile); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); call(0xF0042014); } static inline void draw_tile_to_background( unsigned int tile, unsigned short x, unsigned short y ) { parameter(0, tile); parameter(1, x); parameter(2, y); call(0xF0042018); } static inline void draw_pixel_to_background( unsigned short x, unsigned short y, unsigned int color ) { parameter(0, x); parameter(1, y); parameter(2, color); call(0xF004201C); } static inline void draw_filled_rectangle_to_background( unsigned short x, unsigned short y, unsigned short width, unsigned short height, unsigned int color ) { parameter(0, x); parameter(1, y); parameter(2, width); parameter(3, height); parameter(4, color); call(0xF0042020); } // overlay jump table static inline void fill_overlay( unsigned int color, unsigned char overlay_number ) { parameter(0, color); parameter(1, overlay_number); call(0xF0043000); } static inline unsigned short draw_str_to_overlay( char* str, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color, unsigned char overlay_number ) { unsigned short result_1; parameter(0, str); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); parameter(5, overlay_number); call(0xF0043004); ret(1, result_1); return result_1; } static inline unsigned short draw_format_str_to_overlay( char* str, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color, unsigned char overlay_number, unsigned int format_value_0, unsigned int format_value_1, unsigned int format_value_2, unsigned int format_value_3, unsigned int format_value_4, unsigned int format_value_5 ) { unsigned short result_1; parameter(0, str); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); parameter(5, overlay_number); parameter(10, format_value_0); parameter(11, format_value_1); parameter(12, format_value_2); parameter(13, format_value_3); parameter(14, format_value_4); parameter(15, format_value_5); call(0xF0043008); ret(1, result_1); return result_1; } static inline unsigned short draw_decimal_to_overlay( unsigned int value, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color, unsigned char overlay_number ) { unsigned short result_1; parameter(0, value); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); parameter(5, overlay_number); call(0xF004300C); ret(1, result_1); return result_1; } static inline unsigned short draw_hex_to_overlay( unsigned int value, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color, unsigned char overlay_number ) { unsigned short result_1; parameter(0, value); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); parameter(5, overlay_number); call(0xF0043010); ret(1, result_1); return result_1; } static inline void draw_font_tile_to_overlay( unsigned int tile, unsigned short x, unsigned short y, unsigned int foreground_color, unsigned int background_color, unsigned char overlay_number ) { parameter(0, tile); parameter(1, x); parameter(2, y); parameter(3, foreground_color); parameter(4, background_color); parameter(5, overlay_number); call(0xF0043014); } static inline void draw_tile_to_overlay( unsigned int tile, unsigned short x, unsigned short y, unsigned char overlay_number ) { parameter(0, tile); parameter(1, x); parameter(2, y); parameter(3, overlay_number); call(0xF0043018); } static inline void draw_pixel_to_overlay( unsigned short x, unsigned short y, unsigned int color, unsigned char overlay_number ) { parameter(0, x); parameter(1, y); parameter(2, color); parameter(3, overlay_number); call(0xF004301C); } static inline void draw_filled_rectangle_to_overlay( unsigned short x, unsigned short y, unsigned short width, unsigned short height, unsigned int color, unsigned char overlay_number ) { parameter(0, x); parameter(1, y); parameter(2, width); parameter(3, height); parameter(4, color); parameter(5, overlay_number); call(0xF0043020); } static inline void check_if_overlay_covers_position(void) { call(0xF0043024); } static inline void check_if_enabled_overlay_covers_position(void) { call(0xF0043028); } static inline void enable_overlay( unsigned char overlay_number ) { parameter(0, overlay_number); call(0xF004302C); } static inline void disable_overlay( unsigned char overlay_number ) { parameter(0, overlay_number); call(0xF0043030); } static inline void move_overlay( unsigned short x, unsigned short y, unsigned char overlay_number ) { parameter(0, x); parameter(1, y); parameter(2, overlay_number); call(0xF0043034); } static inline void resize_overlay( unsigned short width, unsigned short height, unsigned char overlay_number ) { parameter(0, width); parameter(1, height); parameter(2, overlay_number); call(0xF0043038); } static inline void set_overlay_framebuffer_pointer( unsigned int* framebuffer_pointer, unsigned char overlay_number ) { parameter(0, framebuffer_pointer); parameter(1, overlay_number); call(0xF004303C); } static inline void get_unused_overlay(void) { call(0xF0043040); } static inline void make_coordinates_relative_to_overlay(void) { call(0xF0043044); } // menu bar jump table static inline void enable_menu_bar(void) { call(0xF0044000); } static inline void disable_menu_bar(void) { call(0xF0044004); } static inline void menu_bar_click_event(void) { call(0xF0044008); } static inline void clear_menu_bar(void) { call(0xF004400C); } static inline void draw_menu_bar_root_items(void) { call(0xF0044010); } static inline void draw_menu_items(void) { call(0xF0044014); } static inline void close_menu(void) { call(0xF0044018); } static inline void menu_update_event(void) { call(0xF004401C); } // disk jump table static inline void read_sector(void) { call(0xF0045000); } static inline void write_sector(void) { call(0xF0045004); } static inline void ryfs_open(void) { call(0xF0045008); } static inline void ryfs_seek(void) { call(0xF004500C); } static inline void ryfs_read(void) { call(0xF0045010); } static inline void ryfs_read_whole_file(void) { call(0xF0045014); } static inline void ryfs_get_size(void) { call(0xF0045018); } static inline void ryfs_get_file_list(void) { call(0xF004501C); } static inline void ryfs_tell(void) { call(0xF0045020); } static inline void ryfs_write(void) { call(0xF0045024); } // memory copy/compare jump table static inline void copy_memory_bytes(void) { call(0xF0046000); } static inline void copy_memory_words(void) { call(0xF0046004); } static inline void copy_string(void) { call(0xF0046008); } static inline void compare_memory_bytes(void) { call(0xF004600C); } static inline void compare_memory_words(void) { call(0xF0046010); } static inline void compare_string(void) { call(0xF0046014); } static inline void string_length(void) { call(0xF0046018); } // integer jump table static inline void string_to_int(void) { call(0xF0047000); } // audio jump table static inline void play_audio(void) { call(0xF0048000); } static inline void stop_audio(void) { call(0xF0048004); } // random number jump table static inline unsigned int random(void) { unsigned int result_0; call(0xF0049000); ret(0, result_0); return result_0; } static inline unsigned int random_range( unsigned int minimum, unsigned int maximum ) { unsigned int result_0; parameter(1, minimum); parameter(2, maximum); call(0xF0049004); ret(0, result_0); return result_0; } // keys #define KEY_CTRL 0x0000001D #define KEY_LSHIFT 0x0000002A #define KEY_RSHIFT 0x00000036 #define KEY_CAPS 0x0000003A // fox32os definitions // system jump table static inline struct return3 get_os_version(void) { struct return3 result_0; call(0x00000810); ret(0, result_0.return0); ret(1, result_0.return1); ret(2, result_0.return2); return result_0; } // FXF jump table static inline unsigned char* parse_fxf_binary( unsigned char* fxf_memory_buffer ) { unsigned char* result_0; parameter(0, fxf_memory_buffer); call(0x00000910); ret(0, result_0); return result_0; } // task jump table static inline void new_task( unsigned char task_id, unsigned char* initial_instruction_pointer, unsigned char* initial_stack_pointer, unsigned char* code_block_to_free, unsigned char* stack_block_to_free ) { parameter(0, task_id); parameter(1, initial_instruction_pointer); parameter(2, initial_stack_pointer); parameter(3, code_block_to_free); parameter(4, stack_block_to_free); call(0x00000A10); } static inline void yield_task(void) { call(0x00000A14); } static inline void end_current_task(void) { call(0x00000A18); } static inline unsigned char get_current_task_id(void) { unsigned char result_0; call(0x00000A1C); ret(0, result_0); return result_0; } static inline unsigned char get_unused_task_id(void) { unsigned char result_0; call(0x00000A20); ret(0, result_0); return result_0; } static inline void is_task_id_used(void) { call(0x00000A24); } static inline void save_state_and_yield_task(void) { call(0x00000A28); } // memory jump table static inline unsigned char* allocate_memory( unsigned int bytes_to_allocate ) { unsigned char* result_0; parameter(0, bytes_to_allocate); call(0x00000B10); ret(0, result_0); return result_0; } static inline void free_memory( unsigned char* allocated_block ) { parameter(0, allocated_block); call(0x00000B14); } // window jump table static inline void new_window( unsigned char* window_struct, char* title_str, unsigned short width, unsigned short height, unsigned short x, unsigned short y, unsigned char* menu_bar_struct, unsigned char* first_widget ) { parameter(0, window_struct); parameter(1, title_str); parameter(2, width); parameter(3, height); parameter(4, x); parameter(5, y); parameter(6, menu_bar_struct); parameter(7, first_widget); call(0x00000C10); } static inline void destroy_window( unsigned char* window_struct ) { parameter(0, window_struct); call(0x00000C14); } static inline void new_window_event( unsigned int event_type, unsigned int parameter0, unsigned int parameter1, unsigned int parameter2, unsigned int parameter3, unsigned int parameter4, unsigned int parameter5, unsigned int parameter6, unsigned int parameter7, unsigned char* window_struct ) { parameter(0, event_type); parameter(1, parameter0); parameter(2, parameter1); parameter(3, parameter2); parameter(4, parameter3); parameter(5, parameter4); parameter(6, parameter5); parameter(7, parameter6); parameter(8, parameter7); parameter(9, window_struct); call(0x00000C18); } static inline struct return8 get_next_window_event( unsigned char* window_struct ) { struct return8 result_0; parameter(0, window_struct); call(0x00000C1C); ret(0, result_0.return0); ret(1, result_0.return1); ret(2, result_0.return2); ret(3, result_0.return3); ret(4, result_0.return4); ret(5, result_0.return5); ret(6, result_0.return6); ret(7, result_0.return7); return result_0; } static inline void draw_title_bar_to_window( unsigned char* window_struct ) { parameter(0, window_struct); call(0x00000C20); } static inline void move_window( unsigned short x, unsigned short y, unsigned char* window_struct ) { parameter(0, x); parameter(1, y); parameter(2, window_struct); call(0x00000C24); } static inline void fill_window( unsigned int color, unsigned char* window_struct ) { parameter(0, color); parameter(1, window_struct); call(0x00000C28); } static inline unsigned short get_window_overlay_number( unsigned char* window_struct ) { unsigned short result_0; parameter(0, window_struct); call(0x00000C2C); ret(0, result_0); return result_0; } static inline void start_dragging_window( unsigned char* window_struct ) { parameter(0, window_struct); call(0x00000C30); } static inline void new_messagebox( char* first_line_str, char* second_line_str, char* third_line_str, unsigned short x, unsigned short y, unsigned short width ) { parameter(0, first_line_str); parameter(1, second_line_str); parameter(2, third_line_str); parameter(3, x); parameter(4, y); parameter(5, width); call(0x00000C34); } static inline unsigned char* get_active_window_struct(void) { unsigned char* result_0; call(0x00000C38); ret(0, result_0); return result_0; } // VFS jump table static inline unsigned short open( char* file_name, unsigned char disk_id, unsigned char* file_struct ) { unsigned short result_0; parameter(0, file_name); parameter(1, disk_id); parameter(2, file_struct); call(0x00000D10); ret(0, result_0); return result_0; } static inline void seek( unsigned int offset, unsigned char* file_struct ) { parameter(0, offset); parameter(1, file_struct); call(0x00000D14); } static inline unsigned int tell( unsigned char* file_struct ) { unsigned int result_0; parameter(0, file_struct); call(0x00000D18); ret(0, result_0); return result_0; } static inline unsigned int read( unsigned int bytes_to_read, unsigned char* file_struct, unsigned char* destination_buffer ) { unsigned int result_0; parameter(0, bytes_to_read); parameter(1, file_struct); parameter(2, destination_buffer); call(0x00000D1C); ret(0, result_0); return result_0; } static inline void write( unsigned int bytes_to_write, unsigned char* file_struct, unsigned char* source_buffer ) { parameter(0, bytes_to_write); parameter(1, file_struct); parameter(2, source_buffer); call(0x00000D20); } // widget jump table static inline void draw_widgets_to_window( unsigned char* window_struct ) { parameter(0, window_struct); call(0x00000E10); } static inline void handle_widget_click( unsigned char* window_struct, unsigned short x, unsigned short y ) { parameter(0, window_struct); parameter(1, x); parameter(2, y); call(0x00000E14); } // event types #define EVENT_TYPE_MOUSE_CLICK 0x00000000 #define EVENT_TYPE_MOUSE_RELEASE 0x00000001 #define EVENT_TYPE_KEY_DOWN 0x00000002 #define EVENT_TYPE_KEY_UP 0x00000003 #define EVENT_TYPE_MENU_BAR_CLICK 0x00000004 #define EVENT_TYPE_MENU_UPDATE 0x00000005 #define EVENT_TYPE_MENU_CLICK 0x00000006 #define EVENT_TYPE_MENU_ACK 0x00000007 #define EVENT_TYPE_BUTTON_CLICK 0x80000000 #define EVENT_TYPE_EMPTY 0xFFFFFFFF // widget types #define WIDGET_TYPE_BUTTON 0x00000000