summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/tms57002/tms57002.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/tms57002/tms57002.h')
-rw-r--r--src/devices/cpu/tms57002/tms57002.h129
1 files changed, 65 insertions, 64 deletions
diff --git a/src/devices/cpu/tms57002/tms57002.h b/src/devices/cpu/tms57002/tms57002.h
index 28e57dc7969..b5decb23998 100644
--- a/src/devices/cpu/tms57002/tms57002.h
+++ b/src/devices/cpu/tms57002/tms57002.h
@@ -12,16 +12,17 @@
#pragma once
-class tms57002_device : public cpu_device, public device_sound_interface {
+class tms57002_device : public cpu_device, public device_sound_interface
+{
public:
- tms57002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ tms57002_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
auto dready_callback() { return m_dready_callback.bind(); }
auto pc0_callback() { return m_pc0_callback.bind(); }
auto empty_callback() { return m_empty_callback.bind(); }
- DECLARE_READ8_MEMBER(data_r);
- DECLARE_WRITE8_MEMBER(data_w);
+ u8 data_r();
+ void data_w(u8 data);
DECLARE_WRITE_LINE_MEMBER(pload_w);
DECLARE_WRITE_LINE_MEMBER(cload_w);
@@ -37,9 +38,9 @@ protected:
virtual void device_reset() override;
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
virtual space_config_vector memory_space_config() const override;
- virtual uint32_t execute_min_cycles() const override;
- virtual uint32_t execute_max_cycles() const override;
- virtual uint32_t execute_input_lines() const override;
+ virtual u32 execute_min_cycles() const override;
+ virtual u32 execute_max_cycles() const override;
+ virtual u32 execute_input_lines() const override;
virtual void execute_run() override;
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
@@ -99,19 +100,19 @@ private:
enum { INC_CA = 1, INC_ID = 2 };
struct icd {
- unsigned short op;
- short next;
- unsigned char param;
+ u16 op;
+ s16 next;
+ u8 param;
};
struct hcd {
- unsigned int st1;
- short ipc;
- short next;
+ u32 st1;
+ s16 ipc;
+ s16 next;
};
struct cd {
- short hashbase[256];
+ s16 hashbase[256];
hcd hashnode[HBS];
icd inst[IBS];
int hused, iused;
@@ -120,30 +121,30 @@ private:
struct cstate {
int branch;
int inc;
- short hnode;
- short ipc;
+ s16 hnode;
+ s16 ipc;
};
// macc_read and macc_write are used by non-pipelined instructions
- int64_t macc, macc_read, macc_write;
+ s64 macc, macc_read, macc_write;
- uint32_t cmem[256];
- uint32_t dmem0[256];
- uint32_t dmem1[32];
+ u32 cmem[256];
+ u32 dmem0[256];
+ u32 dmem1[32];
- uint32_t si[4], so[4];
+ u32 si[4], so[4];
- uint32_t st0, st1, sti;
- uint32_t aacc, xoa, xba, xwr, xrd, txrd, creg;
+ u32 st0, st1, sti;
+ u32 aacc, xoa, xba, xwr, xrd, txrd, creg;
- uint8_t pc, hpc, ca, id, ba0, ba1, rptc, rptc_next, sa;
+ u8 pc, hpc, ca, id, ba0, ba1, rptc, rptc_next, sa;
- uint32_t xm_adr;
+ u32 xm_adr;
- uint8_t host[4], hidx, allow_update;
+ u8 host[4], hidx, allow_update;
- uint32_t update[16];
- uint8_t update_counter_head, update_counter_tail;
+ u32 update[16];
+ u8 update_counter_head, update_counter_tail;
cd cache;
@@ -157,21 +158,21 @@ private:
int icount;
int unsupported_inst_warning;
- void decode_error(uint32_t opcode);
- void decode_cat1(uint32_t opcode, unsigned short *op, cstate *cs);
- void decode_cat2_pre(uint32_t opcode, unsigned short *op, cstate *cs);
- void decode_cat3(uint32_t opcode, unsigned short *op, cstate *cs);
- void decode_cat2_post(uint32_t opcode, unsigned short *op, cstate *cs);
-
- inline int xmode(uint32_t opcode, char type, cstate *cs);
- inline int sfao(uint32_t st1);
- inline int dbp(uint32_t st1);
- inline int crm(uint32_t st1);
- inline int sfai(uint32_t st1);
- inline int sfmo(uint32_t st1);
- inline int rnd(uint32_t st1);
- inline int movm(uint32_t st1);
- inline int sfma(uint32_t st1);
+ void decode_error(u32 opcode);
+ void decode_cat1(u32 opcode, u16 *op, cstate *cs);
+ void decode_cat2_pre(u32 opcode, u16 *op, cstate *cs);
+ void decode_cat3(u32 opcode, u16 *op, cstate *cs);
+ void decode_cat2_post(u32 opcode, u16 *op, cstate *cs);
+
+ inline int xmode(u32 opcode, char type, cstate *cs);
+ inline int sfao(u32 st1);
+ inline int dbp(u32 st1);
+ inline int crm(u32 st1);
+ inline int sfai(u32 st1);
+ inline int sfmo(u32 st1);
+ inline int rnd(u32 st1);
+ inline int movm(u32 st1);
+ inline int sfma(u32 st1);
void update_dready();
void update_pc0();
@@ -180,29 +181,29 @@ private:
void xm_init();
void xm_step_read();
void xm_step_write();
- int64_t macc_to_output_0(int64_t rounding, uint64_t rmask);
- int64_t macc_to_output_1(int64_t rounding, uint64_t rmask);
- int64_t macc_to_output_2(int64_t rounding, uint64_t rmask);
- int64_t macc_to_output_3(int64_t rounding, uint64_t rmask);
- int64_t macc_to_output_0s(int64_t rounding, uint64_t rmask);
- int64_t macc_to_output_1s(int64_t rounding, uint64_t rmask);
- int64_t macc_to_output_2s(int64_t rounding, uint64_t rmask);
- int64_t macc_to_output_3s(int64_t rounding, uint64_t rmask);
- int64_t check_macc_overflow_0();
- int64_t check_macc_overflow_1();
- int64_t check_macc_overflow_2();
- int64_t check_macc_overflow_3();
- int64_t check_macc_overflow_0s();
- int64_t check_macc_overflow_1s();
- int64_t check_macc_overflow_2s();
- int64_t check_macc_overflow_3s();
+ s64 macc_to_output_0(s64 rounding, u64 rmask);
+ s64 macc_to_output_1(s64 rounding, u64 rmask);
+ s64 macc_to_output_2(s64 rounding, u64 rmask);
+ s64 macc_to_output_3(s64 rounding, u64 rmask);
+ s64 macc_to_output_0s(s64 rounding, u64 rmask);
+ s64 macc_to_output_1s(s64 rounding, u64 rmask);
+ s64 macc_to_output_2s(s64 rounding, u64 rmask);
+ s64 macc_to_output_3s(s64 rounding, u64 rmask);
+ s64 check_macc_overflow_0();
+ s64 check_macc_overflow_1();
+ s64 check_macc_overflow_2();
+ s64 check_macc_overflow_3();
+ s64 check_macc_overflow_0s();
+ s64 check_macc_overflow_1s();
+ s64 check_macc_overflow_2s();
+ s64 check_macc_overflow_3s();
void cache_flush();
- void add_one(cstate *cs, unsigned short op, uint8_t param);
- void decode_one(uint32_t opcode, cstate *cs, void (tms57002_device::*dec)(uint32_t opcode, unsigned short *op, cstate *cs));
- short get_hash(unsigned char adr, uint32_t st1, short *pnode);
- short get_hashnode(unsigned char adr, uint32_t st1, short pnode);
+ void add_one(cstate *cs, u16 op, u8 param);
+ void decode_one(u32 opcode, cstate *cs, void (tms57002_device::*dec)(u32 opcode, u16 *op, cstate *cs));
+ s16 get_hash(u8 adr, u32 st1, s16 *pnode);
+ s16 get_hashnode(u8 adr, u32 st1, s16 pnode);
int decode_get_pc();
- uint32_t get_cmem(uint8_t addr);
+ u32 get_cmem(u8 addr);
#define CINTRPDECL
#include "../../emu/cpu/tms57002/tms57002.hxx"