summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine/strata.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/machine/strata.c')
-rw-r--r--src/mess/machine/strata.c122
1 files changed, 61 insertions, 61 deletions
diff --git a/src/mess/machine/strata.c b/src/mess/machine/strata.c
index f3383cdda22..aead20c731e 100644
--- a/src/mess/machine/strata.c
+++ b/src/mess/machine/strata.c
@@ -14,49 +14,49 @@
#include "emu.h"
#include "strata.h"
-#define MAX_STRATA 1
+#define MAX_STRATA 1
-#define FEEPROM_SIZE 0x800000 // 64Mbit
-#define BLOCK_SIZE 0x020000
+#define FEEPROM_SIZE 0x800000 // 64Mbit
+#define BLOCK_SIZE 0x020000
#define BLOCKLOCK_SIZE ((FEEPROM_SIZE/BLOCK_SIZE+7)/8)
#define WRBUF_SIZE 32
#define PROT_REGS_SIZE 18
#define ADDRESS_MASK 0x7fffff
-#define BLOCK_ADDRESS_MASK 0x7e0000
-#define BLOCK_ADDRESS_SHIFT 17
-#define BYTE_ADDRESS_MASK 0x01ffff
+#define BLOCK_ADDRESS_MASK 0x7e0000
+#define BLOCK_ADDRESS_SHIFT 17
+#define BYTE_ADDRESS_MASK 0x01ffff
enum fm_mode_t
{
- FM_NORMAL, // normal read/write
- FM_READID, // read ID
- FM_READQUERY, // read query
- FM_READSTATUS, // read status
- FM_WRITEPART1, // first half of programming, awaiting second
- FM_WRBUFPART1, // first part of write to buffer, awaiting second
- FM_WRBUFPART2, // second part of write to buffer, awaiting third
- FM_WRBUFPART3, // third part of write to buffer, awaiting fourth
- FM_WRBUFPART4, // fourth part of write to buffer
- FM_CLEARPART1, // first half of clear, awaiting second
- FM_SETLOCK, // first half of set master lock/set block lock
- FM_CONFPART1, // first half of configuration, awaiting second
- FM_WRPROTPART1 // first half of protection program, awaiting second
+ FM_NORMAL, // normal read/write
+ FM_READID, // read ID
+ FM_READQUERY, // read query
+ FM_READSTATUS, // read status
+ FM_WRITEPART1, // first half of programming, awaiting second
+ FM_WRBUFPART1, // first part of write to buffer, awaiting second
+ FM_WRBUFPART2, // second part of write to buffer, awaiting third
+ FM_WRBUFPART3, // third part of write to buffer, awaiting fourth
+ FM_WRBUFPART4, // fourth part of write to buffer
+ FM_CLEARPART1, // first half of clear, awaiting second
+ FM_SETLOCK, // first half of set master lock/set block lock
+ FM_CONFPART1, // first half of configuration, awaiting second
+ FM_WRPROTPART1 // first half of protection program, awaiting second
};
struct strata_t
{
- fm_mode_t mode; // current operation mode
- int hard_unlock; // 1 if RP* pin is at Vhh (not fully implemented)
- int status; // current status
- int master_lock; // master lock flag
- offs_t wrbuf_base; // start address in write buffer command
- int wrbuf_len; // count converted into byte length in write buffer command
- int wrbuf_count; // current count in write buffer command
- UINT8 *wrbuf; // write buffer used by write buffer command
- UINT8 *data_ptr; // main FEEPROM area
- UINT8 *blocklock; // block lock flags
- UINT8 *prot_regs; // protection registers
+ fm_mode_t mode; // current operation mode
+ int hard_unlock; // 1 if RP* pin is at Vhh (not fully implemented)
+ int status; // current status
+ int master_lock; // master lock flag
+ offs_t wrbuf_base; // start address in write buffer command
+ int wrbuf_len; // count converted into byte length in write buffer command
+ int wrbuf_count; // current count in write buffer command
+ UINT8 *wrbuf; // write buffer used by write buffer command
+ UINT8 *data_ptr; // main FEEPROM area
+ UINT8 *blocklock; // block lock flags
+ UINT8 *prot_regs; // protection registers
};
/* accessors for individual block lock flags */
@@ -188,7 +188,7 @@ int strataflash_save(device_t *device, emu_file *file)
return 1;
/* chip state: lower boot block lockout, higher boot block lockout,
- software data protect */
+ software data protect */
buf = strata->master_lock;
if (file->write(& buf, 1) != 1)
return 1;
@@ -269,7 +269,7 @@ static int strataflash_r(device_t *device, offs_t offset, bus_width_t bus_width)
return 0x80;
case FM_READID:
if ((offset >= 0x100) && (offset < 0x112))
- { /* protection registers */
+ { /* protection registers */
switch (bus_width)
{
case bw_8:
@@ -281,16 +281,16 @@ static int strataflash_r(device_t *device, offs_t offset, bus_width_t bus_width)
else
switch (offset >> 1)
{
- case 0: // maker ID
- return 0x89; // Intel
- case 1: // chip ID
- return 0x15; // 64 Mbit
+ case 0: // maker ID
+ return 0x89; // Intel
+ case 1: // chip ID
+ return 0x15; // 64 Mbit
default:
if (((offset & BYTE_ADDRESS_MASK) >> 1) == 2)
- { // block lock config
+ { // block lock config
return READ_BLOCKLOCK(strata, offset >> BLOCK_ADDRESS_SHIFT);
}
- return 0; // default case
+ return 0; // default case
case 3: // master lock config
if (strata->master_lock)
return 1;
@@ -301,16 +301,16 @@ static int strataflash_r(device_t *device, offs_t offset, bus_width_t bus_width)
case FM_READQUERY:
switch (offset >> 1)
{
- case 0x00: // maker ID
- return 0x89; // Intel
- case 0x01: // chip ID
- return 0x15; // 64 Mbit
+ case 0x00: // maker ID
+ return 0x89; // Intel
+ case 0x01: // chip ID
+ return 0x15; // 64 Mbit
default:
if (((offset & BYTE_ADDRESS_MASK) >> 1) == 2)
- { // block lock config
+ { // block lock config
return READ_BLOCKLOCK(strata, offset >> BLOCK_ADDRESS_SHIFT);
}
- return 0; // default case
+ return 0; // default case
#if 0
case 0x03: // master lock config
if (strata->flash_master_lock)
@@ -452,51 +452,51 @@ static void strataflash_w(device_t *device, offs_t offset, int data, bus_width_t
case FM_READSTATUS:
switch (data)
{
- case 0xff: // read array
+ case 0xff: // read array
strata->mode = FM_NORMAL;
break;
- case 0x90: // read identifier codes
+ case 0x90: // read identifier codes
strata->mode = FM_READID;
break;
- case 0x98: // read query
+ case 0x98: // read query
strata->mode = FM_READQUERY;
break;
- case 0x70: // read status register
+ case 0x70: // read status register
strata->mode = FM_READSTATUS;
break;
- case 0x50: // clear status register
+ case 0x50: // clear status register
strata->mode = FM_READSTATUS;
strata->status &= 0xC5;
break;
- case 0xe8: // write to buffer
+ case 0xe8: // write to buffer
strata->mode = FM_WRBUFPART1;
strata->wrbuf_base = offset & BLOCK_ADDRESS_MASK;
/*strata->status &= 0xC5;*/
break;
case 0x40:
- case 0x10: // program
+ case 0x10: // program
strata->mode = FM_WRITEPART1;
strata->status &= 0xC5;
break;
- case 0x20: // block erase
+ case 0x20: // block erase
strata->mode = FM_CLEARPART1;
strata->status &= 0xC5;
break;
- case 0xb0: // block erase, program suspend
+ case 0xb0: // block erase, program suspend
/* not emulated (erase is instantaneous) */
break;
- case 0xd0: // block erase, program resume
+ case 0xd0: // block erase, program resume
/* not emulated (erase is instantaneous) */
break;
- case 0xb8: // configuration
+ case 0xb8: // configuration
strata->mode = FM_CONFPART1;
strata->status &= 0xC5;
break;
- case 0x60: // set master lock
+ case 0x60: // set master lock
strata->mode = FM_SETLOCK;
strata->status &= 0xC5;
break;
- case 0xc0: // protection program
+ case 0xc0: // protection program
strata->mode = FM_WRPROTPART1;
strata->status &= 0xC5;
break;
@@ -538,7 +538,7 @@ static void strataflash_w(device_t *device, offs_t offset, int data, bus_width_t
}
else
strata->wrbuf_base = offset;
- memset(strata->wrbuf, 0xff, strata->wrbuf_len); /* right??? */
+ memset(strata->wrbuf, 0xff, strata->wrbuf_len); /* right??? */
case FM_WRBUFPART3:
if ((offset < strata->wrbuf_base) || (offset >= (strata->wrbuf_base + strata->wrbuf_len)))
strata->status |= 0x30;
@@ -634,7 +634,7 @@ static void strataflash_w(device_t *device, offs_t offset, int data, bus_width_t
else
CLEAR_BLOCKLOCK(strata, offset >> BLOCK_ADDRESS_SHIFT);
break;
- case 0x03: // Set Read configuration
+ case 0x03: // Set Read configuration
/* ignore command */
break;
default:
@@ -646,7 +646,7 @@ static void strataflash_w(device_t *device, offs_t offset, int data, bus_width_t
case FM_CONFPART1:
/* configuration register is not emulated because the sts pin is not */
//strata->configuration = data;
- strata->mode = FM_READSTATUS; /* right??? */
+ strata->mode = FM_READSTATUS; /* right??? */
break;
case FM_WRPROTPART1:
if ((offset < 0x100) || (offset >= 0x112))
@@ -665,7 +665,7 @@ static void strataflash_w(device_t *device, offs_t offset, int data, bus_width_t
break;
}
}
- strata->mode = FM_READSTATUS; /* right??? */
+ strata->mode = FM_READSTATUS; /* right??? */
break;
}
}