#include <stdint.h>
#define PEEK(address) (*(uint8_t *)(address))
uint8_t register_s_read() {
uint8_t s;
asm volatile(
"tsx"
: "=x" (s)
);
return s;
}
uint8_t register_p_read() {
uint8_t s = register_s_read();
asm volatile("php");
uint8_t p = PEEK(0x0100 + s);
asm volatile("plp");
return p;
}