summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/hpc3.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/hpc3.h')
-rw-r--r--src/mame/machine/hpc3.h36
1 files changed, 26 insertions, 10 deletions
diff --git a/src/mame/machine/hpc3.h b/src/mame/machine/hpc3.h
index a7e9a596b5d..a26ecd9d1e1 100644
--- a/src/mame/machine/hpc3.h
+++ b/src/mame/machine/hpc3.h
@@ -58,7 +58,10 @@ public:
DECLARE_READ32_MEMBER(pio_config_r);
DECLARE_WRITE32_MEMBER(pio_config_w);
- DECLARE_WRITE_LINE_MEMBER(scsi_irq);
+ DECLARE_WRITE_LINE_MEMBER(scsi0_irq);
+ DECLARE_WRITE_LINE_MEMBER(scsi0_drq);
+ DECLARE_WRITE_LINE_MEMBER(scsi1_irq);
+ DECLARE_WRITE_LINE_MEMBER(scsi1_drq);
protected:
void device_start() override;
@@ -67,9 +70,11 @@ protected:
void do_pbus_dma(uint32_t channel);
- void dump_chain(address_space &space, uint32_t ch_base);
- void fetch_chain(address_space &space);
- bool decrement_chain(address_space &space);
+ void dump_chain(uint32_t base);
+ void fetch_chain(int channel);
+ void decrement_chain(int channel);
+ void scsi_drq(bool state, int channel);
+ void scsi_dma(int channel);
static const device_timer_id TIMER_PBUS_DMA = 0;
@@ -127,15 +132,26 @@ protected:
uint32_t m_enetr_nbdp;
uint32_t m_enetr_cbp;
- uint32_t m_scsi0_desc;
- uint32_t m_scsi0_addr;
- uint32_t m_scsi0_flags;
- uint32_t m_scsi0_byte_count;
- uint32_t m_scsi0_next_addr;
- uint32_t m_scsi0_dma_ctrl;
+
+ struct scsi_dma_t
+ {
+ uint32_t m_desc;
+ uint32_t m_addr;
+ uint32_t m_ctrl;
+ uint32_t m_length;
+ uint32_t m_next;
+ bool m_irq;
+ bool m_big_endian;
+ bool m_to_device;
+ bool m_active;
+ };
+
+ scsi_dma_t m_scsi_dma[2];
pbus_dma_t m_pbus_dma[8];
uint32_t m_pio_config[10];
+ address_space *m_cpu_space;
+
inline void ATTR_PRINTF(3,4) verboselog(int n_level, const char *s_fmt, ... );
};