From 55928d498a58e684ef7dfa2dc98624dd164a40a6 Mon Sep 17 00:00:00 2001 From: Stephen Crane Date: Sat, 27 Feb 2021 12:01:52 +0000 Subject: [PATCH] hardware reorg --- hardware.cpp | 8 +++++++- hw/blank.h | 22 ---------------------- hw/esp32-espi-dac.h | 33 +++------------------------------ hw/esp32-espi-spiffs.h | 5 +++++ hw/esp32-espi.h | 32 ++------------------------------ hw/esp32-utft-dac.h | 28 ++-------------------------- hw/esp32/dac.h | 4 ++++ hw/esp32/espi.h | 13 +++++++++++++ hw/esp32/kbd.h | 5 +++++ hw/esp32/spiffs.h | 5 +++++ hw/esp32/utft.h | 9 +++++++++ hw/esp8266-pwm-fs-23k256.h | 37 +++++-------------------------------- hw/esp8266-pwm-fs.h | 34 ++++------------------------------ hw/esp8266-pwm-sd.h | 35 ++++------------------------------- hw/esp8266-pwm.h | 36 ++++-------------------------------- hw/esp8266/espi.h | 12 ++++++++++++ hw/esp8266/fs.h | 5 +++++ hw/esp8266/kbd.h | 4 ++++ hw/esp8266/pwm.h | 4 ++++ hw/esp8266/sd.h | 6 ++++++ hw/esp8266/spiram.h | 6 ++++++ hw/lm4f-utft-sd.h | 33 +++++---------------------------- hw/lm4f-utft.h | 25 +++---------------------- hw/lm4f/kbd.h | 4 ++++ hw/lm4f/sd.h | 5 +++++ hw/lm4f/spiram.h | 8 ++++++++ hw/lm4f/utft.h | 11 +++++++++++ 27 files changed, 145 insertions(+), 284 deletions(-) delete mode 100644 hw/blank.h create mode 100644 hw/esp32-espi-spiffs.h create mode 100644 hw/esp32/dac.h create mode 100644 hw/esp32/espi.h create mode 100644 hw/esp32/kbd.h create mode 100644 hw/esp32/spiffs.h create mode 100644 hw/esp32/utft.h create mode 100644 hw/esp8266/espi.h create mode 100644 hw/esp8266/fs.h create mode 100644 hw/esp8266/kbd.h create mode 100644 hw/esp8266/pwm.h create mode 100644 hw/esp8266/sd.h create mode 100644 hw/esp8266/spiram.h create mode 100644 hw/lm4f/kbd.h create mode 100644 hw/lm4f/sd.h create mode 100644 hw/lm4f/spiram.h create mode 100644 hw/lm4f/utft.h diff --git a/hardware.cpp b/hardware.cpp index 72dafbe..7492975 100644 --- a/hardware.cpp +++ b/hardware.cpp @@ -11,7 +11,6 @@ #endif #include "memory.h" -#include "ps2drv.h" #include "CPU.h" #if defined(USE_SPIRAM) @@ -21,7 +20,11 @@ spiram sram(SPIRAM_SIZE); #endif Memory memory; + +#if defined(USE_KBD) +#include "ps2drv.h" PS2Driver ps2; +#endif static CPU *_cpu; @@ -66,7 +69,10 @@ bool hardware_reset() { void hardware_init(CPU &cpu) { _cpu = &cpu; memory.begin(); + +#if defined(USE_KBD) ps2.begin(KBD_DATA, KBD_IRQ); +#endif #if defined(TFT_BACKLIGHT) pinMode(TFT_BACKLIGHT, OUTPUT); diff --git a/hw/blank.h b/hw/blank.h deleted file mode 100644 index 8fd85e6..0000000 --- a/hw/blank.h +++ /dev/null @@ -1,22 +0,0 @@ -// TFT display... -#undef USE_ESPI -#undef USE_UTFT - -// PS/2 keyboard -#define KBD_DATA 34 -#define KBD_IRQ 35 - -#define RAM_SIZE 0u - -// SPI-RAM -#undef USE_SPIRAM -#define SPIRAM_SIZE 0u - -// "tape" storage... -#undef USE_SD -#undef USE_FS -#undef USE_SPIFFS - -// sound: dac and pwm -#undef DAC_SOUND -#undef PWM_SOUND diff --git a/hw/esp32-espi-dac.h b/hw/esp32-espi-dac.h index 67c050e..c6a9e27 100644 --- a/hw/esp32-espi-dac.h +++ b/hw/esp32-espi-dac.h @@ -1,32 +1,5 @@ -// TFT display... -#define USE_ESPI -//#define USER_SETUP_LOADED -//#define ILI9341_DRIVER -//#define TFT_CS 5 -//#define TFT_DC 2 -//#define TFT_MOSI 23 -//#define TFT_MISO -1 -//#define TFT_SCLK 18 -//#define TFT_RST -1 -//#define SPI_FREQUENCY 40000000 -//#define LOAD_GLCD - -// PS/2 keyboard -#define KBD_DATA 34 -#define KBD_IRQ 35 - #define RAM_SIZE 0x10000u -// SPI-RAM -#undef USE_SPIRAM -#define SPIRAM_SIZE 0u - -// "tape" storage... -#undef USE_SD -#undef USE_FS -#define USE_SPIFFS - -// sound: dac and pwm -#define DAC_SOUND 25 -#define PWM_SOUND 25 -#define PWM_DUTY 20 // 20/1024 -> volume +#include +#include +#include diff --git a/hw/esp32-espi-spiffs.h b/hw/esp32-espi-spiffs.h new file mode 100644 index 0000000..9181d2c --- /dev/null +++ b/hw/esp32-espi-spiffs.h @@ -0,0 +1,5 @@ +#define RAM_SIZE 0x10000u + +#include +#include +#include diff --git a/hw/esp32-espi.h b/hw/esp32-espi.h index 4971d54..6f6ca6c 100644 --- a/hw/esp32-espi.h +++ b/hw/esp32-espi.h @@ -1,32 +1,4 @@ -// TFT display... -#define USE_ESPI -//#define USER_SETUP_LOADED -//#define ILI9341_DRIVER -//#define TFT_CS 5 -//#define TFT_DC 2 -//#define TFT_MOSI 23 -//#define TFT_MISO -1 -//#define TFT_SCLK 18 -//#define TFT_RST -1 -//#define SPI_FREQUENCY 40000000 -//#define LOAD_GLCD - -// PS/2 keyboard -#define KBD_DATA 34 -#define KBD_IRQ 35 - #define RAM_SIZE 0x10000u -// SPI-RAM -#undef USE_SPIRAM -#define SPIRAM_SIZE 0u - -// "tape" storage... -#undef USE_SD -#undef USE_FS -#undef USE_SPIFFS - -// sound: dac and pwm -#undef DAC_SOUND -#undef PWM_SOUND -#undef PWM_DUTY +#include +#include diff --git a/hw/esp32-utft-dac.h b/hw/esp32-utft-dac.h index 0e6b89f..ece0ef5 100644 --- a/hw/esp32-utft-dac.h +++ b/hw/esp32-utft-dac.h @@ -1,28 +1,4 @@ -// TFT display... -#define USE_UTFT -#undef TFT_BACKLIGHT -#define TFT_MODEL ILI9325C -#define TFT_RS 32 -#define TFT_WR 33 -#define TFT_CS 27 -#define TFT_RST 26 - -// PS/2 keyboard -#define KBD_DATA 34 -#define KBD_IRQ 35 - #define RAM_SIZE 0x10000u -// SPI-RAM -#undef USE_SPIRAM -#define SPIRAM_SIZE 0u - -// "tape" storage... -#undef USE_SD -#undef USE_FS -#define USE_SPIFFS - -// sound: dac and pwm -#define DAC_SOUND 25 -#define PWM_SOUND 25 -#define PWM_DUTY 20 // 20/1024 -> volume +#include +#include diff --git a/hw/esp32/dac.h b/hw/esp32/dac.h new file mode 100644 index 0000000..a7c3c8d --- /dev/null +++ b/hw/esp32/dac.h @@ -0,0 +1,4 @@ +// sound: dac and pwm +#define DAC_SOUND 25 +#define PWM_SOUND 25 +#define PWM_DUTY 20 // 20/1024 -> volume diff --git a/hw/esp32/espi.h b/hw/esp32/espi.h new file mode 100644 index 0000000..71c33b0 --- /dev/null +++ b/hw/esp32/espi.h @@ -0,0 +1,13 @@ +// TFT display... +#define USE_ESPI +//#define USER_SETUP_LOADED +//#define ILI9341_DRIVER +//#define TFT_CS 5 +//#define TFT_DC 2 +//#define TFT_MOSI 23 +//#define TFT_MISO -1 +//#define TFT_SCLK 18 +//#define TFT_RST -1 +//#define SPI_FREQUENCY 40000000 +//#define LOAD_GLCD + diff --git a/hw/esp32/kbd.h b/hw/esp32/kbd.h new file mode 100644 index 0000000..6bfcf78 --- /dev/null +++ b/hw/esp32/kbd.h @@ -0,0 +1,5 @@ +// PS/2 keyboard +#define USE_KBD +#define KBD_DATA 34 +#define KBD_IRQ 35 + diff --git a/hw/esp32/spiffs.h b/hw/esp32/spiffs.h new file mode 100644 index 0000000..4a6c13d --- /dev/null +++ b/hw/esp32/spiffs.h @@ -0,0 +1,5 @@ +// "tape" storage... +#undef USE_SD +#undef USE_FS +#define USE_SPIFFS + diff --git a/hw/esp32/utft.h b/hw/esp32/utft.h new file mode 100644 index 0000000..de39b1f --- /dev/null +++ b/hw/esp32/utft.h @@ -0,0 +1,9 @@ +// TFT display... +#define USE_UTFT +#undef TFT_BACKLIGHT +#define TFT_MODEL ILI9325C +#define TFT_RS 32 +#define TFT_WR 33 +#define TFT_CS 27 +#define TFT_RST 26 + diff --git a/hw/esp8266-pwm-fs-23k256.h b/hw/esp8266-pwm-fs-23k256.h index 2bf29d0..cb1729c 100644 --- a/hw/esp8266-pwm-fs-23k256.h +++ b/hw/esp8266-pwm-fs-23k256.h @@ -1,34 +1,7 @@ -// TFT display... -#define USE_ESPI -//must define these in Makefile (or platformio) -//#define USER_SETUP_LOADED -//#define ILI9341_DRIVER -//#define TFT_CS PIN_D8 -//#define TFT_DC PIN_D1 -//#define TFT_WIDTH 240 -//#define TFT_HEIGHT 320 -//#define TFT_RST -1 -//#define SPI_FREQUENCY 40000000 -//#define LOAD_GLCD - -// PS/2 keyboard -#define KBD_IRQ D3 -#define KBD_DATA D4 - #define RAM_SIZE 0x8000u -// SPI-RAM -#define USE_SPIRAM -#define SPIRAM_DEV SPI -#define SPIRAM_CS D0 -#define SPIRAM_SIZE 0x8000u - -// "tape" storage... -#undef USE_SD -#undef USE_SPIFFS -#define USE_FS - -// sound -#define PWM_SOUND D2 -#define PWM_DUTY 20 // 20/1024 -> volume -#define PWM_TOP 1024 +#include +#include +#include +#include +#include diff --git a/hw/esp8266-pwm-fs.h b/hw/esp8266-pwm-fs.h index 66f6db7..beba42a 100644 --- a/hw/esp8266-pwm-fs.h +++ b/hw/esp8266-pwm-fs.h @@ -1,32 +1,6 @@ -// TFT display... -#define USE_ESPI -//must define these in Makefile (or platformio) -//#define USER_SETUP_LOADED -//#define ILI9341_DRIVER -//#define TFT_CS PIN_D8 -//#define TFT_DC PIN_D1 -//#define TFT_WIDTH 240 -//#define TFT_HEIGHT 320 -//#define TFT_RST -1 -//#define SPI_FREQUENCY 40000000 -//#define LOAD_GLCD - -// PS/2 keyboard -#define KBD_IRQ D3 -#define KBD_DATA D4 - #define RAM_SIZE 0x8000u -// SPI-RAM -#undef USE_SPIRAM -#define SPIRAM_SIZE 0u - -// "tape" storage... -#undef USE_SD -#undef USE_SPIFFS -#define USE_FS - -// sound -#define PWM_SOUND D2 -#define PWM_DUTY 20 // 20/1024 -> volume -#define PWM_TOP 1024 +#include +#include +#include +#include diff --git a/hw/esp8266-pwm-sd.h b/hw/esp8266-pwm-sd.h index b3d4abd..d200727 100644 --- a/hw/esp8266-pwm-sd.h +++ b/hw/esp8266-pwm-sd.h @@ -1,33 +1,6 @@ -// TFT display... -#define USE_ESPI -//must define these in Makefile (or platformio) -//#define USER_SETUP_LOADED -//#define ILI9341_DRIVER -//#define TFT_CS PIN_D8 -//#define TFT_DC PIN_D1 -//#define TFT_WIDTH 240 -//#define TFT_HEIGHT 320 -//#define TFT_RST -1 -//#define SPI_FREQUENCY 40000000 -//#define LOAD_GLCD - -// PS/2 keyboard -#define KBD_IRQ D3 -#define KBD_DATA D4 - #define RAM_SIZE 0x8000u -// SPI-RAM -#undef USE_SPIRAM -#define SPIRAM_SIZE 0u - -// "tape" storage... -#define USE_SD -#define SD_CS D0 -#undef USE_SPIFFS -#undef USE_FS - -// sound -#define PWM_SOUND D2 -#define PWM_DUTY 20 // 20/1024 -> volume -#define PWM_TOP 1024 +#include +#include +#include +#include diff --git a/hw/esp8266-pwm.h b/hw/esp8266-pwm.h index f8686b7..5be732a 100644 --- a/hw/esp8266-pwm.h +++ b/hw/esp8266-pwm.h @@ -1,34 +1,6 @@ -// TFT display... -#define USE_ESPI -//must define these in Makefile (or platformio) -//#define USER_SETUP_LOADED -//#define ILI9341_DRIVER -//#define TFT_CS PIN_D8 -//#define TFT_DC PIN_D1 -//#define TFT_WIDTH 240 -//#define TFT_HEIGHT 320 -//#define TFT_RST -1 -//#define SPI_FREQUENCY 40000000 -//#define LOAD_GLCD - -// PS/2 keyboard -#define KBD_IRQ D3 -#define KBD_DATA D4 - +#define NO_CHECKPOINT 1 #define RAM_SIZE 0x8000u -// SPI-RAM -#undef USE_SPIRAM -#define SPIRAM_SIZE 0u - -// "tape" storage... -#undef USE_SD -#undef USE_SPIFFS -#undef USE_FS - -// sound -#define PWM_SOUND D2 -#define PWM_DUTY 20 // 20/1024 -> volume -#define PWM_TOP 1024 - -#define NO_CHECKPOINT 1 +#include +#include +#include diff --git a/hw/esp8266/espi.h b/hw/esp8266/espi.h new file mode 100644 index 0000000..a548200 --- /dev/null +++ b/hw/esp8266/espi.h @@ -0,0 +1,12 @@ +// TFT display... +#define USE_ESPI +//must define these in Makefile (or platformio) +//#define USER_SETUP_LOADED +//#define ILI9341_DRIVER +//#define TFT_CS PIN_D8 +//#define TFT_DC PIN_D1 +//#define TFT_WIDTH 240 +//#define TFT_HEIGHT 320 +//#define TFT_RST -1 +//#define SPI_FREQUENCY 40000000 +//#define LOAD_GLCD diff --git a/hw/esp8266/fs.h b/hw/esp8266/fs.h new file mode 100644 index 0000000..847f794 --- /dev/null +++ b/hw/esp8266/fs.h @@ -0,0 +1,5 @@ +// "tape" storage... +#undef USE_SD +#undef USE_SPIFFS +#define USE_FS + diff --git a/hw/esp8266/kbd.h b/hw/esp8266/kbd.h new file mode 100644 index 0000000..5e9f943 --- /dev/null +++ b/hw/esp8266/kbd.h @@ -0,0 +1,4 @@ +// PS/2 keyboard +#define USE_KBD +#define KBD_IRQ D3 +#define KBD_DATA D4 diff --git a/hw/esp8266/pwm.h b/hw/esp8266/pwm.h new file mode 100644 index 0000000..8e4413c --- /dev/null +++ b/hw/esp8266/pwm.h @@ -0,0 +1,4 @@ +// sound +#define PWM_SOUND D2 +#define PWM_DUTY 20 // 20/1024 -> volume +#define PWM_TOP 1024 diff --git a/hw/esp8266/sd.h b/hw/esp8266/sd.h new file mode 100644 index 0000000..3ebeaa0 --- /dev/null +++ b/hw/esp8266/sd.h @@ -0,0 +1,6 @@ +// "tape" storage... +#define USE_SD +#define SD_CS D0 +#undef USE_SPIFFS +#undef USE_FS + diff --git a/hw/esp8266/spiram.h b/hw/esp8266/spiram.h new file mode 100644 index 0000000..5766029 --- /dev/null +++ b/hw/esp8266/spiram.h @@ -0,0 +1,6 @@ +// SPI-RAM +#define USE_SPIRAM +#define SPIRAM_DEV SPI +#define SPIRAM_CS D0 +#define SPIRAM_SIZE 0x8000u + diff --git a/hw/lm4f-utft-sd.h b/hw/lm4f-utft-sd.h index 1454125..4c31ced 100644 --- a/hw/lm4f-utft-sd.h +++ b/hw/lm4f-utft-sd.h @@ -1,31 +1,8 @@ -// TFT display... -// NOTE: edit memorysaver.h to select the correct chip for your display! -// Daniel Rebollo's boosterpack -#define USE_UTFT -#define TFT_BACKLIGHT PD_6 -#define TFT_MODEL SSD1289 -#define TFT_RS PC_6 -#define TFT_WR PC_5 -#define TFT_CS PC_7 -#define TFT_RST PC_4 - -// PS/2 keyboard -#define KBD_DATA PE_4 -#define KBD_IRQ PE_5 - #define RAM_SIZE 0x3000u -// SPI-RAM -#define USE_SPIRAM -#define SPIRAM_CS PE_0 -#define SPIRAM_DEV SPI_for_SD -#define SPIRAM_MODULE 1 -#define SPIRAM_CLKDIV 1 -#define SPIRAM_SIZE 65536u - -// "tape" storage... -#define USE_SD -#define SD_CS PF_3 -#define SD_SPI 1 - #define SPI_CS PF_3 + +#include +#include +#include +#include diff --git a/hw/lm4f-utft.h b/hw/lm4f-utft.h index e9bcd3e..973b982 100644 --- a/hw/lm4f-utft.h +++ b/hw/lm4f-utft.h @@ -1,25 +1,6 @@ -// TFT display... -// NOTE: edit memorysaver.h to select the correct chip for your display! -// Daniel Rebollo's boosterpack -#define USE_UTFT -#define TFT_BACKLIGHT PD_6 -#define TFT_MODEL SSD1289 -#define TFT_RS PC_6 -#define TFT_WR PC_5 -#define TFT_CS PC_7 -#define TFT_RST PC_4 - -// PS/2 keyboard -#define KBD_DATA PE_4 -#define KBD_IRQ PE_5 - #define RAM_SIZE 0x3000u -// SPI-RAM -#undef USE_SPIRAM -#define SPIRAM_SIZE 0u - -// "tape" storage... -#undef USE_SD - #define SPI_CS PF_3 + +#include +#include diff --git a/hw/lm4f/kbd.h b/hw/lm4f/kbd.h new file mode 100644 index 0000000..ab23b32 --- /dev/null +++ b/hw/lm4f/kbd.h @@ -0,0 +1,4 @@ +// PS/2 keyboard +#define KBD_DATA PE_4 +#define KBD_IRQ PE_5 + diff --git a/hw/lm4f/sd.h b/hw/lm4f/sd.h new file mode 100644 index 0000000..295f037 --- /dev/null +++ b/hw/lm4f/sd.h @@ -0,0 +1,5 @@ +// "tape" storage... +#define USE_SD +#define SD_CS PF_3 +#define SD_SPI 1 + diff --git a/hw/lm4f/spiram.h b/hw/lm4f/spiram.h new file mode 100644 index 0000000..b255f8b --- /dev/null +++ b/hw/lm4f/spiram.h @@ -0,0 +1,8 @@ +// SPI-RAM +#define USE_SPIRAM +#define SPIRAM_CS PE_0 +#define SPIRAM_DEV SPI_for_SD +#define SPIRAM_MODULE 1 +#define SPIRAM_CLKDIV 1 +#define SPIRAM_SIZE 65536u + diff --git a/hw/lm4f/utft.h b/hw/lm4f/utft.h new file mode 100644 index 0000000..b82d12d --- /dev/null +++ b/hw/lm4f/utft.h @@ -0,0 +1,11 @@ +// TFT display... +// NOTE: edit memorysaver.h to select the correct chip for your display! +// Daniel Rebollo's boosterpack +#define USE_UTFT +#define TFT_BACKLIGHT PD_6 +#define TFT_MODEL SSD1289 +#define TFT_RS PC_6 +#define TFT_WR PC_5 +#define TFT_CS PC_7 +#define TFT_RST PC_4 +