fox-tools/gcc/bindings.c

977 lines
21 KiB
C

// 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