diff --git a/checkpoint.cpp b/checkpoint.cpp index 11f211f..c51387b 100644 --- a/checkpoint.cpp +++ b/checkpoint.cpp @@ -3,6 +3,8 @@ #include "checkpoint.h" #include "hardware.h" +#ifdef notdef + static char buf[32]; static char chkpt[] = { "CHKPOINT" }; static int cpid = 0; @@ -27,3 +29,4 @@ void restore(sdtape &tape, const char *dir, const char *filename) { cpid = (n == 1)? 0: cpid+1; tape.start(dir); } +#endif diff --git a/hardware.cpp b/hardware.cpp index 0def11d..63cc151 100644 --- a/hardware.cpp +++ b/hardware.cpp @@ -1,6 +1,6 @@ -#include #include #include +#include #include #include "ps2drv.h" @@ -12,26 +12,36 @@ Memory memory; PS2Driver ps2; + +#if defined(SPIRAM_CS) spiram sram(SPIRAM_SIZE); +#endif + UTFT utft(TFT_MODEL, TFT_RS, TFT_WR, TFT_CS, TFT_RST); static CPU *_cpu; bool hardware_reset() { + bool success = true; + +#if defined(SPIRAM_CS) extern SPIClass SPIRAM_DEV; SPIRAM_DEV.begin(); SPIRAM_DEV.setModule(SPIRAM_SPI); SPIRAM_DEV.setClockDivider(1); SPIRAM_DEV.setDataMode(SPI_MODE0); +#endif - bool sd = SD.begin(SD_CS, 2, SD_SPI); +#if defined(SD_CS) + success = SD.begin(SD_CS, 2, SD_SPI); pinMode(SPI_CS, OUTPUT); // without this, the SPI-RAM isn't seen - +#endif + #if defined(TFT_BACKLIGHT) digitalWrite(TFT_BACKLIGHT, HIGH); #endif _cpu->reset(); - return sd; + return success; } void hardware_init(CPU &cpu) { @@ -42,10 +52,16 @@ void hardware_init(CPU &cpu) { #if defined(TFT_BACKLIGHT) pinMode(TFT_BACKLIGHT, OUTPUT); #endif + +#if defined(SD_CS) pinMode(SD_CS, OUTPUT); digitalWrite(SD_CS, HIGH); +#endif + +#if defined(SPIRAM_CS) pinMode(SPIRAM_CS, OUTPUT); digitalWrite(SPIRAM_CS, HIGH); +#endif } void hardware_checkpoint(Stream &s) { diff --git a/hardware.h b/hardware.h index 18149c6..59c01d0 100644 --- a/hardware.h +++ b/hardware.h @@ -6,35 +6,22 @@ #define __HARDWARE_H__ // TFT display... -// NOTE: edit memorysaver.h to select the correct chip for your display! -// Daniel Rebollo's boosterpack -#define TFT_BACKLIGHT PD_6 -#define TFT_MODEL SSD1289 -// TFT01_2.4: http://www.elecfreaks.com/store/24-tft-lcd-tft0124-p-110.html -// #undef TFT_BACKLIGHT -// #define TFT_MODEL S6D1121_8 -#define TFT_RS PC_6 -#define TFT_WR PC_5 -#define TFT_CS PC_7 -#define TFT_RST PC_4 +#undef TFT_BACKLIGHT +#define TFT_MODEL ILI9325C +#define TFT_RS 32 +#define TFT_WR 33 +#define TFT_CS 25 +#define TFT_RST 26 // PS/2 keyboard -#define KBD_DATA PE_4 -#define KBD_IRQ PE_5 +#define KBD_DATA 14 +#define KBD_IRQ 12 // SPI-RAM -#define SPIRAM_CS PE_0 -//#define SPIRAM_CS PF_3 -#define SPIRAM_SPI 1 -#define SPIRAM_DEV SPI_for_SD -#define SPIRAM_SIZE 65536 +#undef SPIRAM_CS // "tape" storage... -#define SD_CS PF_3 -//#define SD_CS PE_0 -#define SD_SPI 1 - -#define SPI_CS PF_3 +#undef SD_CS bool hardware_reset(); void hardware_init(class CPU &); @@ -44,7 +31,7 @@ void hardware_restore(class Stream &); #ifdef __PS2DRV_H__ extern class PS2Driver ps2; #endif -#ifdef __SPIRAM_H__ +#if defined(__SPIRAM_H__) && defined(SPIRAM_CS) extern class spiram sram; #endif #ifdef UTFT_h diff --git a/spiram.cpp b/spiram.cpp index 792b255..3ff168f 100644 --- a/spiram.cpp +++ b/spiram.cpp @@ -4,6 +4,8 @@ #include "spiram.h" #include "hardware.h" +#if defined(SPIRAM_CS) + extern SPIClass SPIRAM_DEV; SpiRAM spiRam(SPIRAM_DEV, SPIRAM_CS); @@ -35,4 +37,4 @@ void spiram::restore(Stream &s) spiRam.write_stream(i * 256, buf, sizeof(buf)); } } - +#endif diff --git a/timed.cpp b/timed.cpp index 7ef3bb9..92a98ed 100644 --- a/timed.cpp +++ b/timed.cpp @@ -1,3 +1,5 @@ +#ifdef notdef + #include #include #include @@ -25,3 +27,4 @@ void timer_create(unsigned freq, Timed *client) { ROM_TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, ROM_SysCtlClockGet() / freq); } +#endif