summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/i86/i86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/i86/i86.h')
-rw-r--r--src/devices/cpu/i86/i86.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/devices/cpu/i86/i86.h b/src/devices/cpu/i86/i86.h
index 3d0a372b7d5..3ceb94f672d 100644
--- a/src/devices/cpu/i86/i86.h
+++ b/src/devices/cpu/i86/i86.h
@@ -20,6 +20,7 @@ enum
{
I8086_PC = STATE_GENPC,
I8086_IP = 1, I8086_AX, I8086_CX, I8086_DX, I8086_BX, I8086_SP, I8086_BP, I8086_SI, I8086_DI,
+ I8086_AL, I8086_AH, I8086_CL, I8086_CH, I8086_DL, I8086_DH, I8086_BL, I8086_BH,
I8086_FLAGS, I8086_ES, I8086_CS, I8086_SS, I8086_DS,
I8086_VECTOR, I8086_HALT
};
@@ -110,14 +111,14 @@ protected:
i8086_common_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
// device_execute_interface overrides
- virtual uint32_t execute_min_cycles() const override { return 1; }
- virtual uint32_t execute_max_cycles() const override { return 50; }
+ virtual uint32_t execute_min_cycles() const noexcept override { return 1; }
+ virtual uint32_t execute_max_cycles() const noexcept override { return 50; }
virtual void execute_set_input(int inputnum, int state) override;
- virtual bool execute_input_edge_triggered(int inputnum) const override { return inputnum == INPUT_LINE_NMI; }
+ virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; }
// device_disasm_interface overrides
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
@@ -138,6 +139,7 @@ protected:
virtual uint8_t read_port_byte(uint16_t port);
virtual uint16_t read_port_word(uint16_t port);
virtual void write_port_byte(uint16_t port, uint8_t data);
+ virtual void write_port_byte_al(uint16_t port);
virtual void write_port_word(uint16_t port, uint16_t data);
// Executing instructions
@@ -288,12 +290,14 @@ protected:
uint32_t m_int_vector;
uint32_t m_pending_irq;
uint32_t m_nmi_state;
- uint32_t m_irq_state;
uint8_t m_no_interrupt;
uint8_t m_fire_trap;
uint8_t m_test_state;
address_space *m_program, *m_opcodes;
+ memory_access<20, 0, 0, ENDIANNESS_LITTLE>::cache m_cache8;
+ memory_access<20, 1, 0, ENDIANNESS_LITTLE>::cache m_cache16;
+
std::function<u8 (offs_t)> m_or8;
address_space *m_io;
int m_icount;
@@ -353,8 +357,7 @@ protected:
i8086_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int data_bus_size);
virtual void execute_run() override;
- virtual void device_start() override;
- virtual uint32_t execute_input_lines() const override { return 1; }
+ virtual void device_start() override ATTR_COLD;
virtual uint8_t fetch() override;
inline address_space *sreg_to_space(int sreg) const;
virtual uint8_t read_byte(uint32_t addr) override;