summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/intellec4/insdatastor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/intellec4/insdatastor.cpp')
-rw-r--r--src/devices/bus/intellec4/insdatastor.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/devices/bus/intellec4/insdatastor.cpp b/src/devices/bus/intellec4/insdatastor.cpp
index b52c3815857..ccbac01904e 100644
--- a/src/devices/bus/intellec4/insdatastor.cpp
+++ b/src/devices/bus/intellec4/insdatastor.cpp
@@ -168,25 +168,23 @@ class imm4_22_device
public:
imm4_22_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
- virtual image_init_result call_load() override;
+ virtual std::pair<std::error_condition, std::string> call_load() override;
virtual void call_unload() override;
- virtual iodevice_t image_type() const noexcept override { return IO_ROM; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
- virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual char const *file_extensions() const noexcept override { return "rom,bin"; }
- virtual char const *custom_instance_name() const noexcept override { return "promimage"; }
- virtual char const *custom_brief_instance_name() const noexcept override { return "prom"; }
+ virtual char const *image_type_name() const noexcept override { return "promimage"; }
+ virtual char const *image_brief_type_name() const noexcept override { return "prom"; }
protected:
virtual ioport_constructor device_input_ports() const override;
virtual void device_start() override;
virtual void device_reset() override;
- virtual DECLARE_WRITE_LINE_MEMBER(reset_4002_in) override;
+ virtual void reset_4002_in(int state) override;
private:
void ram_out(offs_t offset, u8 data);
@@ -224,18 +222,22 @@ imm4_22_device::imm4_22_device(machine_config const &mconfig, char const *tag, d
}
-image_init_result imm4_22_device::call_load()
+std::pair<std::error_condition, std::string> imm4_22_device::call_load()
{
if ((length() > 1024U) || (length() % 256U))
- return image_init_result::FAIL;
+ {
+ return std::make_pair(
+ image_error::INVALIDLENGTH,
+ "Invalid PROM image size (must be a multiple of 256 bytes no larger than 1K)");
+ }
allocate();
if (fread(m_prom.get(), length()) != length())
- return image_init_result::FAIL;
+ return std::make_pair(image_error::UNSPECIFIED, "Error reading file");
map_prom();
- return image_init_result::PASS;
+ return std::make_pair(std::error_condition(), std::string());
}
void imm4_22_device::call_unload()
@@ -269,7 +271,7 @@ void imm4_22_device::device_reset()
}
-WRITE_LINE_MEMBER(imm4_22_device::reset_4002_in)
+void imm4_22_device::reset_4002_in(int state)
{
// FIXME: this takes several cycles to actually erase everything, and prevents writes while asserted
if (!state)