summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/pps4/pps4.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/pps4/pps4.h')
-rw-r--r--src/emu/cpu/pps4/pps4.h268
1 files changed, 134 insertions, 134 deletions
diff --git a/src/emu/cpu/pps4/pps4.h b/src/emu/cpu/pps4/pps4.h
index e5f46906a6c..a001e3cf933 100644
--- a/src/emu/cpu/pps4/pps4.h
+++ b/src/emu/cpu/pps4/pps4.h
@@ -9,22 +9,22 @@
***************************************************************************/
enum
{
- PPS4_PC,
- PPS4_A,
- PPS4_X,
- PPS4_SA,
- PPS4_SB,
- PPS4_B,
- PPS4_Skip,
- PPS4_SAG,
- PPS4_I1,
- PPS4_I2,
- PPS4_Ip,
- PPS4_GENPC = STATE_GENPC,
- PPS4_GENSP = STATE_GENSP,
- PPS4_GENPCBASE = STATE_GENPCBASE,
- PPS4_PORT_A = 256,
- PPS4_PORT_B = 257
+ PPS4_PC,
+ PPS4_A,
+ PPS4_X,
+ PPS4_SA,
+ PPS4_SB,
+ PPS4_B,
+ PPS4_Skip,
+ PPS4_SAG,
+ PPS4_I1,
+ PPS4_I2,
+ PPS4_Ip,
+ PPS4_GENPC = STATE_GENPC,
+ PPS4_GENSP = STATE_GENSP,
+ PPS4_GENPCBASE = STATE_GENPCBASE,
+ PPS4_PORT_A = 256,
+ PPS4_PORT_B = 257
};
/***************************************************************************
@@ -40,128 +40,128 @@ extern const device_type PPS4;
class pps4_device : public cpu_device
{
public:
- // construction/destruction
- pps4_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ // construction/destruction
+ pps4_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
protected:
- // device-level overrides
- virtual void device_start();
- virtual void device_reset();
-
- // device_execute_interface overrides
- virtual UINT32 execute_min_cycles() const { return 1; }
- virtual UINT32 execute_max_cycles() const { return 3; }
- virtual UINT32 execute_input_lines() const { return 0; }
- virtual UINT32 execute_default_irq_vector() const { return 0; }
- virtual void execute_run();
-
- // device_memory_interface overrides
- virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const
- {
- return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : ( (spacenum == AS_DATA) ? &m_data_config : NULL ) );
- }
-
- // device_state_interface overrides
- void state_string_export(const device_state_entry &entry, astring &string);
-
- // device_disasm_interface overrides
- virtual UINT32 disasm_min_opcode_bytes() const { return 1; }
- virtual UINT32 disasm_max_opcode_bytes() const { return 2; }
- virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options);
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ // device_execute_interface overrides
+ virtual UINT32 execute_min_cycles() const { return 1; }
+ virtual UINT32 execute_max_cycles() const { return 3; }
+ virtual UINT32 execute_input_lines() const { return 0; }
+ virtual UINT32 execute_default_irq_vector() const { return 0; }
+ virtual void execute_run();
+
+ // device_memory_interface overrides
+ virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const
+ {
+ return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : ( (spacenum == AS_DATA) ? &m_data_config : NULL ) );
+ }
+
+ // device_state_interface overrides
+ void state_string_export(const device_state_entry &entry, astring &string);
+
+ // device_disasm_interface overrides
+ virtual UINT32 disasm_min_opcode_bytes() const { return 1; }
+ virtual UINT32 disasm_max_opcode_bytes() const { return 2; }
+ virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options);
private:
- address_space_config m_program_config;
- address_space_config m_data_config;
- address_space_config m_io_config;
-
- address_space *m_program;
- direct_read_data *m_direct;
- address_space *m_data;
- address_space *m_io;
- int m_icount;
-
- UINT8 m_A; //!< Accumulator A(4:1)
- UINT8 m_X; //!< X register X(4:1)
- UINT16 m_P; //!< program counter P(12:1)
- UINT16 m_SA; //!< Shift register SA(12:1)
- UINT16 m_SB; //!< Shift register SB(12:1)
- UINT8 m_Skip; //!< Skip next instruction
- UINT16 m_SAG; //!< Special address generation mask
- UINT16 m_B; //!< B register B(12:1) (BL, BM and BH)
- UINT8 m_C; //!< Carry flip-flop
- UINT8 m_FF1; //!< Flip-flop 1
- UINT8 m_FF2; //!< Flip-flop 2
- UINT8 m_I1; //!< Most recent instruction I(8:1)
- UINT8 m_I2; //!< Most recent parameter I2(8:1)
- UINT8 m_Ip; //!< Previous instruction I(8:1)
-
- //! return the contents of B register (made of BU, BM and BL)
- inline UINT16 B() const;
-
- //! return memory at address B(12:1)
- inline UINT8 M();
-
- //! write to memory at address B(12:1)
- inline void W(UINT8 data);
-
- //! return the next opcode (also in m_I)
- inline UINT8 ROP();
-
- //! return the next argument (also in m_I2)
- inline UINT8 ARG();
-
- void iAD(); //!< Add
- void iADC(); //!< Add with carry-in
- void iADSK(); //!< Add and skip on carry-out
- void iADCSK(); //!< Add with carry-in and skip on carry-out
- void iADI(); //!< Add immediate
- void iDC(); //!< Decimal correction
- void iAND(); //!< Logical AND
- void iOR(); //!< Logical OR
- void iEOR(); //!< Logical Exclusive-OR
- void iCOMP(); //!< Complement
- void iSC(); //!< Set Carry flip-flop
- void iRC(); //!< Reset Carry flip-flop
- void iSF1(); //!< Set FF1
- void iRF1(); //!< Reset FF1
- void iSF2(); //!< Set FF2
- void iRF2(); //!< Reset FF2
- void iLD(); //!< Load accumulator from memory
- void iEX(); //!< Exchange accumulator and memory
- void iEXD(); //!< Exchange accumulator and memory and decrement BL
- void iLDI(); //!< Load accumulator immediate
- void iLAX(); //!< Load accumulator from X register
- void iLXA(); //!< Load X register from accumulator
- void iLABL(); //!< Load accumulator with BL
- void iLBMX(); //!< Load BM with X
- void iLBUA(); //!< Load BU with A
- void iXABL(); //!< Exchange accumulator and BL
- void iXBMX(); //!< Exchange BM and X registers
- void iXAX(); //!< Exchange accumulator and X
- void iXS(); //!< Eychange SA and SB registers
- void iCYS(); //!< Cycle SA register and accumulaor
- void iLB(); //!< Load B indirect
- void iLBL(); //!< Load B long
- void iINCB(); //!< Increment BL
- void iDECB(); //!< Decrement BL
- void iT(); //!< Transfer
- void iTM(); //!< Transfer and mark indirect
- void iTL(); //!< Transfer long
- void iTML(); //!< Transfer and mark long
- void iSKC(); //!< Skip on carry flip-flop
- void iSKZ(); //!< Skip on accumulator zero
- void iSKBI(); //!< Skip if BL equal to immediate
- void iSKF1(); //!< Skip if FF1 equals 1
- void iSKF2(); //!< Skip if FF2 equals 1
- void iRTN(); //!< Return
- void iRTNSK(); //!< Return and skip
- void iIOL(); //!< Input/Output long
- void iDIA(); //!< Discrete input group A
- void iDIB(); //!< Discrete input group B
- void iDOA(); //!< Discrete output group A
- void iSAG(); //!< Special address generation
-
- void execute_one(); //!< execute one instruction
+ address_space_config m_program_config;
+ address_space_config m_data_config;
+ address_space_config m_io_config;
+
+ address_space *m_program;
+ direct_read_data *m_direct;
+ address_space *m_data;
+ address_space *m_io;
+ int m_icount;
+
+ UINT8 m_A; //!< Accumulator A(4:1)
+ UINT8 m_X; //!< X register X(4:1)
+ UINT16 m_P; //!< program counter P(12:1)
+ UINT16 m_SA; //!< Shift register SA(12:1)
+ UINT16 m_SB; //!< Shift register SB(12:1)
+ UINT8 m_Skip; //!< Skip next instruction
+ UINT16 m_SAG; //!< Special address generation mask
+ UINT16 m_B; //!< B register B(12:1) (BL, BM and BH)
+ UINT8 m_C; //!< Carry flip-flop
+ UINT8 m_FF1; //!< Flip-flop 1
+ UINT8 m_FF2; //!< Flip-flop 2
+ UINT8 m_I1; //!< Most recent instruction I(8:1)
+ UINT8 m_I2; //!< Most recent parameter I2(8:1)
+ UINT8 m_Ip; //!< Previous instruction I(8:1)
+
+ //! return the contents of B register (made of BU, BM and BL)
+ inline UINT16 B() const;
+
+ //! return memory at address B(12:1)
+ inline UINT8 M();
+
+ //! write to memory at address B(12:1)
+ inline void W(UINT8 data);
+
+ //! return the next opcode (also in m_I)
+ inline UINT8 ROP();
+
+ //! return the next argument (also in m_I2)
+ inline UINT8 ARG();
+
+ void iAD(); //!< Add
+ void iADC(); //!< Add with carry-in
+ void iADSK(); //!< Add and skip on carry-out
+ void iADCSK(); //!< Add with carry-in and skip on carry-out
+ void iADI(); //!< Add immediate
+ void iDC(); //!< Decimal correction
+ void iAND(); //!< Logical AND
+ void iOR(); //!< Logical OR
+ void iEOR(); //!< Logical Exclusive-OR
+ void iCOMP(); //!< Complement
+ void iSC(); //!< Set Carry flip-flop
+ void iRC(); //!< Reset Carry flip-flop
+ void iSF1(); //!< Set FF1
+ void iRF1(); //!< Reset FF1
+ void iSF2(); //!< Set FF2
+ void iRF2(); //!< Reset FF2
+ void iLD(); //!< Load accumulator from memory
+ void iEX(); //!< Exchange accumulator and memory
+ void iEXD(); //!< Exchange accumulator and memory and decrement BL
+ void iLDI(); //!< Load accumulator immediate
+ void iLAX(); //!< Load accumulator from X register
+ void iLXA(); //!< Load X register from accumulator
+ void iLABL(); //!< Load accumulator with BL
+ void iLBMX(); //!< Load BM with X
+ void iLBUA(); //!< Load BU with A
+ void iXABL(); //!< Exchange accumulator and BL
+ void iXBMX(); //!< Exchange BM and X registers
+ void iXAX(); //!< Exchange accumulator and X
+ void iXS(); //!< Eychange SA and SB registers
+ void iCYS(); //!< Cycle SA register and accumulaor
+ void iLB(); //!< Load B indirect
+ void iLBL(); //!< Load B long
+ void iINCB(); //!< Increment BL
+ void iDECB(); //!< Decrement BL
+ void iT(); //!< Transfer
+ void iTM(); //!< Transfer and mark indirect
+ void iTL(); //!< Transfer long
+ void iTML(); //!< Transfer and mark long
+ void iSKC(); //!< Skip on carry flip-flop
+ void iSKZ(); //!< Skip on accumulator zero
+ void iSKBI(); //!< Skip if BL equal to immediate
+ void iSKF1(); //!< Skip if FF1 equals 1
+ void iSKF2(); //!< Skip if FF2 equals 1
+ void iRTN(); //!< Return
+ void iRTNSK(); //!< Return and skip
+ void iIOL(); //!< Input/Output long
+ void iDIA(); //!< Discrete input group A
+ void iDIB(); //!< Discrete input group B
+ void iDOA(); //!< Discrete output group A
+ void iSAG(); //!< Special address generation
+
+ void execute_one(); //!< execute one instruction
};
#endif // __PPS4_H__