#include <stdint.h>
void kernal_poly1(uint8_t* addr) {
uint8_t a = (uint8_t) ((uint16_t) addr);
uint8_t y = (uint8_t) ((uint16_t) addr >> 8);
asm volatile(
"jsr $E043;"
:: "a" (a), "y" (y)
);
}
void kernal_poly2(uint8_t* addr) {
uint8_t a = (uint8_t) ((uint16_t) addr);
uint8_t y = (uint8_t) ((uint16_t) addr >> 8);
asm volatile(
"jsr $E059;"
:: "a" (a), "y" (y)
);
}
void kernal_cos() {
asm volatile("jsr $E264");
}
void kernal_sin() {
asm volatile("jsr $E26B");
}
void kernal_tan() {
asm volatile("jsr $E2B4");
}
void kernal_atn() {
asm volatile("jsr $E30E");
}
uint32_t kernal_rdtim() {
uint8_t a, x, y;
asm volatile(
"jsr $FFDE;"
: "=a" (a), "=x" (x), "=y" (y)
);
return ((uint32_t) a << 16) | ((uint32_t) x << 8) | ((uint32_t) y);
}