__jmp_tbl Variable

default.h

#define __jmp_tbl (*(void***)0xC8)

A variable which points to the TIOS jump table of ROM calls.

__jmp_tbl is a global variable, which is implemented here as a macro. Defining OPTIMIZE_ROM_CALLS causes this definition to be overridden; in this case, __jmp_tbl will be a real variable stored in the register a5.

__jmp_tbl is always a pointer to a void pointer, so you can treat it as an array of void pointers. Its size can be determined using the TIOS_entries pseudo-constant.

Most of the entries in the jump table point to functions, but some of them actually point to global variables of the operating system.

Usually, it is not desirable to use __jmp_tbl directly. The code may be optimized a little better if you use the _rom_call and _rom_call_addr macros instead.