summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/cpu/tlcs90/tlcs90.h96
1 files 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 <size_t Port> auto port_read() { return m_port_read_cb[Port].bind(); }
template <size_t Port> 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<MAX_PORTS> 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)