summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/serflash.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/serflash.h')
-rw-r--r--src/devices/machine/serflash.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/devices/machine/serflash.h b/src/devices/machine/serflash.h
index cae78e0f6f4..20077b00263 100644
--- a/src/devices/machine/serflash.h
+++ b/src/devices/machine/serflash.h
@@ -20,10 +20,12 @@ public:
// custom initialization for default state
typedef device_delegate<void (serflash_device &, void *, size_t)> init_delegate;
-
// construction/destruction
serflash_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ // configuration
+ void set_flash_page_size(uint16_t size) { m_flash_page_size = size; }
+
DECLARE_READ8_MEMBER( flash_ready_r );
DECLARE_READ8_MEMBER( flash_io_r );
DECLARE_WRITE8_MEMBER( flash_addr_w );
@@ -37,8 +39,6 @@ public:
DECLARE_WRITE8_MEMBER(n3d_flash_addr_w);
protected:
- static constexpr unsigned FLASH_PAGE_SIZE = 2048+64;
-
enum class flash_state_t : u8 { IDLE = 0, READ, READ_ID, READ_STATUS, BLOCK_ERASE, PAGE_PROGRAM };
// device-level overrides
@@ -56,6 +56,8 @@ protected:
size_t m_length;
uint8_t* m_region;
+ uint32_t m_row_num;
+ uint16_t m_flash_page_size;
flash_state_t m_flash_state;
@@ -67,9 +69,10 @@ protected:
uint8_t m_flash_addr_seq;
uint8_t m_flash_read_seq;
- uint16_t m_flash_row, m_flash_col;
+ uint32_t m_flash_row;
+ uint16_t m_flash_col;
int m_flash_page_addr;
- uint16_t m_flash_page_index;
+ uint32_t m_flash_page_index;
std::vector<uint8_t> m_flashwritemap;
@@ -78,7 +81,7 @@ protected:
uint32_t m_flash_addr;
- uint8_t m_flash_page_data[FLASH_PAGE_SIZE];
+ std::vector<uint8_t> m_flash_page_data;
};