#include <stdint.h>
int16_t basic_facinx() {
uint8_t a, y;
asm volatile(
"jsr $B1AA;"
: "=a" (a), "=y" (y)
);
return (int16_t) (((uint16_t) a << 8) | ((uint16_t) y));
}
void basic_givayf(int16_t value) {
uint8_t a = (uint8_t) ((uint16_t) value >> 8);
uint8_t y = (uint8_t) ((uint16_t) value);
asm volatile(
"jsr $B391;"
:: "a" (a), "y" (y)
);
}
void basic_fadd(uint8_t* addr) {
uint8_t a = (uint8_t) ((uint16_t) addr);
uint8_t y = (uint8_t) ((uint16_t) addr >> 8);
asm volatile(
"jsr $B867;"
:: "a" (a), "y" (y)
);
}
void basic_faddt() {
asm volatile("jsr $B86A");
}
void basic_movfm(uint8_t* addr) {
uint8_t a = (uint8_t) ((uint16_t) addr);
uint8_t y = (uint8_t) ((uint16_t) addr >> 8);
asm volatile(
"jsr $BBA2;"
:: "a" (a), "y" (y)
);
}
void basic_movmf(uint8_t* addr) {
uint8_t x = (uint8_t) ((uint16_t) addr);
uint8_t y = (uint8_t) ((uint16_t) addr >> 8);
asm volatile(
"jsr $BBD4;"
:: "x" (x), "y" (y)
);
}
uint8_t basic_movaf() {
uint8_t a;
asm volatile(
"jsr $BBFC;"
: "=a" (a)
);
return a;
}
uint8_t basic_movfa() {
uint8_t a;
asm volatile(
"jsr $BC0C;"
: "=a" (a)
);
return a;
}
int8_t basic_fcomp(uint8_t* addr) {
uint8_t a = (uint8_t) ((uint16_t) addr);
uint8_t y = (uint8_t) ((uint16_t) addr >> 8);
int8_t ret;
asm volatile(
"jsr $BC5B;"
: "=a" (ret)
: "a" (a), "y" (y)
);
return ret;
}
void basic_qint() {
asm volatile("jsr $BC9B");
}
int8_t* basic_fout() {
uint8_t a, y;
asm volatile(
"jsr $BDDD;"
: "=a" (a), "=y" (y)
);
return (int8_t*) (((uint16_t) y << 8) | ((uint16_t) a));
}
void basic_negop() {
asm volatile("jsr $BFB4");
}