1
0
mirror of https://github.com/jscrane/r65emu.git synced 2024-12-21 12:29:51 +00:00
r65emu/spiram.cpp
Stephen Crane 77399f8d43 fix typo
2018-08-14 06:18:57 +01:00

42 lines
733 B
C++

#include <SPI.h>
#include <SpiRAM.h>
#include "memory.h"
#include "spiram.h"
#include "hardware.h"
#if defined(SPIRAM_CS)
extern SPIClass SPIRAM_DEV;
SpiRAM spiRam(SPIRAM_DEV, SPIRAM_CS);
void spiram::operator=(uint8_t b)
{
spiRam.write_byte(_acc, b);
}
spiram::operator uint8_t()
{
return spiRam.read_byte(_acc);
}
void spiram::checkpoint(Stream &s)
{
uint8_t buf[Memory::page_size];
for (unsigned i = 0; i < pages(); i++) {
spiRam.read_stream(i * 256, buf, sizeof(buf));
s.write(buf, sizeof(buf));
}
}
void spiram::restore(Stream &s)
{
uint8_t buf[Memory::page_size];
for (unsigned i = 0; i < pages(); i++) {
s.readBytes((char *)buf, sizeof(buf));
spiRam.write_stream(i * 256, buf, sizeof(buf));
}
}
#endif