The core APIs provide a common set of hardware access functions that can be used by game designers. The interfaces are designed to be portable to all pinball hardware platforms and all machines. However, the underlying implementation may vary.
These functions do not access the hardware directly, but instead, they call into a device driver which may be platform-specific (see Platform APIs).
These APIs are intended to be called from the application layer (what other operating systems might refer to as "user space"). For example, there are core APIs to poll the state of switches (active, or inactive?). Under the hood, the switch driver must deal with the fact that switches are arranged in rows and columns, and that some switches are optos: this is all transparent to the user.
Core APIs are all defined in the kernel directory. Any functions
which are not static
may be called from game developers from within
normal task context at any time.