#include #include /* Extremely simplified Zilog SIO */ typedef struct { // Write registers WR7:0 uint8_t wr[7]; // Read registers RR2:0 uint8_t rr[2]; uint8_t rx; uint8_t tx; // Set to true when writing a byte while SIO is enabled and set back to // false when sio_has_irq() is false. bool in_int; } SIO; void sio_init(SIO *sio); bool sio_has_irq(SIO *sio); bool sio_hasrx(SIO *sio); bool sio_hastx(SIO *sio); uint8_t sio_read(SIO *sio); void sio_write(SIO *sio, uint8_t val); uint8_t sio_actl_rd(SIO *sio); void sio_actl_wr(SIO *sio, uint8_t val); uint8_t sio_adata_rd(SIO *sio); void sio_adata_wr(SIO *sio, uint8_t val);