From 0f05abed4464131d485ec35bb460bc2b36caed2d Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 20 Sep 2024 11:06:16 +0200 Subject: tlcs90: move too generic irq enum to class --- src/devices/cpu/tlcs90/tlcs90.h | 96 ++++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/src/devices/cpu/tlcs90/tlcs90.h b/src/devices/cpu/tlcs90/tlcs90.h index e7d07e3f7d7..c7e9b598003 100644 --- a/src/devices/cpu/tlcs90/tlcs90.h +++ b/src/devices/cpu/tlcs90/tlcs90.h @@ -5,60 +5,30 @@ #pragma once -// TODO: too generic global enum -enum tlcs90_e_irq -{ - INTSWI = 0, - INTNMI, - INTWD, - INT0, - INTT0, - INTT1, - INTT2, - INTT3, - INTT4, - INT1, - INTT5, - INT2, - INTRX, - INTTX, - - INTMAX -}; - -DECLARE_ENUM_INCDEC_OPERATORS(tlcs90_e_irq) class tlcs90_device : public cpu_device { - static constexpr int MAX_PORTS = 9; - //static constexpr int MAX_ANALOG_INPUTS = 16; - -protected: - TIMER_CALLBACK_MEMBER(t90_timer_callback); - TIMER_CALLBACK_MEMBER(t90_timer4_callback); - - void tmp90840_regs(address_map &map); - void tmp90840_mem(address_map &map); - void tmp90841_mem(address_map &map); - void tmp90844_regs(address_map &map); - void tmp90ph44_mem(address_map &map); - void tmp91640_mem(address_map &map); - void tmp91641_mem(address_map &map); - - enum _e_op +public: + enum tlcs90_e_irq { - UNKNOWN, - NOP, EX, EXX, LD, LDW, LDA, LDI, LDIR, - LDD, LDDR, CPI, CPIR, CPD, CPDR, PUSH, POP, - JP, JR, CALL, CALLR, RET, RETI, HALT, DI, - EI, SWI, DAA, CPL, NEG, LDAR, RCF, SCF, - CCF, TSET, BIT, SET, RES, INC, DEC, INCX, - DECX, INCW, DECW, ADD, ADC, SUB, SBC, AND, - XOR, OR, CP, RLC, RRC, RL, RR, SLA, - SRA, SLL, SRL, RLD, RRD, DJNZ, MUL, DIV + INTSWI = 0, + INTNMI, + INTWD, + INT0, + INTT0, + INTT1, + INTT2, + INTT3, + INTT4, + INT1, + INTT5, + INT2, + INTRX, + INTTX, + + INTMAX }; -public: // configuration template auto port_read() { return m_port_read_cb[Port].bind(); } template auto port_write() { return m_port_write_cb[Port].bind(); } @@ -84,6 +54,18 @@ protected: // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; + // address maps + void tmp90840_regs(address_map &map); + void tmp90840_mem(address_map &map); + void tmp90841_mem(address_map &map); + void tmp90844_regs(address_map &map); + void tmp90ph44_mem(address_map &map); + void tmp91640_mem(address_map &map); + void tmp91641_mem(address_map &map); + + TIMER_CALLBACK_MEMBER(t90_timer_callback); + TIMER_CALLBACK_MEMBER(t90_timer4_callback); + // internal registers uint8_t p1_r(); void p1_w(uint8_t data); @@ -132,6 +114,19 @@ protected: void reserved_w(offs_t offset, uint8_t data); private: + enum _e_op + { + UNKNOWN, + NOP, EX, EXX, LD, LDW, LDA, LDI, LDIR, + LDD, LDDR, CPI, CPIR, CPD, CPDR, PUSH, POP, + JP, JR, CALL, CALLR, RET, RETI, HALT, DI, + EI, SWI, DAA, CPL, NEG, LDAR, RCF, SCF, + CCF, TSET, BIT, SET, RES, INC, DEC, INCX, + DECX, INCW, DECW, ADD, ADC, SUB, SBC, AND, + XOR, OR, CP, RLC, RRC, RL, RR, SLA, + SRA, SLL, SRL, RLD, RRD, DJNZ, MUL, DIV + }; + enum class e_mode : u8 { NONE, BIT8, CC, @@ -141,6 +136,9 @@ private: R16D8, R16R8 }; + static constexpr int MAX_PORTS = 9; + //static constexpr int MAX_ANALOG_INPUTS = 16; + address_space_config m_program_config; devcb_read8::array m_port_read_cb; @@ -304,6 +302,8 @@ protected: }; +DECLARE_ENUM_INCDEC_OPERATORS(tlcs90_device::tlcs90_e_irq) + DECLARE_DEVICE_TYPE(TMP90840, tmp90840_device) DECLARE_DEVICE_TYPE(TMP90841, tmp90841_device) DECLARE_DEVICE_TYPE(TMP90845, tmp90845_device) -- cgit v1.2.3