collapseos/emul/z80/rc2014_spi.c

29 lines
517 B
C

#include "rc2014_spi.h"
void spi_init(SPI *spi, EXCH spixfn)
{
spi->selected = false;
spi->resp = 0xff;
spi->spixfn = spixfn;
}
// TODO: for now, any nonzero value enables the SPI. To allow
// emulation of systems with multi-devices SPI relay, change
// this.
void spi_ctl_wr(SPI *spi, byte val)
{
spi->selected = val;
}
void spi_wr(SPI *spi, byte val)
{
if (spi->selected) {
spi->resp = spi->spixfn(val);
}
}
byte spi_rd(SPI *spi)
{
return spi->selected ? spi->resp : 0xff;
}