summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/mc6844.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/mc6844.h')
-rw-r--r--src/devices/machine/mc6844.h148
1 files changed, 0 insertions, 148 deletions
diff --git a/src/devices/machine/mc6844.h b/src/devices/machine/mc6844.h
deleted file mode 100644
index e2db601e8e7..00000000000
--- a/src/devices/machine/mc6844.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders: Joakim Larsson Edström
-/***************************************************************************
-
- Motorola 6844 emulation
-
-****************************************************************************
- _____ _____
- VSS 1 |* \_/ | 40 E
- *CS / Tx AKBW 2 | | 39 *RESET
- R / *W 3 | | 38 DGRNT
- A0 4 | | 37 *DRQ1
- A1 5 | | 36 *DRQ2
- A2 6 | | 35 Tx AKA
- A3 7 | | 34 *TX STB
- A4 8 | | 33 *IRQ / *DEND
- A5 9 | | 32 Tx RQ0
- A6 10 | MC6844 | 31 Tx RQ1
- A7 11 | | 30 Tx RQ2
- A8 12 | | 29 Tx RQ3
- A9 13 | | 28 D0
- A10 14 | | 27 D1
- A11 15 | | 26 D2
- A12 16 | | 25 D3
- A13 17 | | 24 D4
- A14 18 | | 23 D5
- A15 19 | | 22 D6
- VCC 20 |_____________| 21 D7
-
-***************************************************************************/
-
-#ifndef MAME_MACHINE_MC6844_H
-#define MAME_MACHINE_MC6844_H
-
-#pragma once
-
-//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-//**************************************************************************
-// TYPE DEFINITIONS
-//**************************************************************************
-
-// ======================> mc6844_device
-
-class mc6844_device : public device_t, public device_execute_interface
-{
-public:
- // construction/destruction
- mc6844_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
- auto out_int_callback() { return m_out_int_cb.bind(); }
- auto out_txak_callback() { return m_out_txak_cb.bind(); }
- auto out_drq1_callback() { return m_out_drq1_cb.bind(); }
- auto out_drq2_callback() { return m_out_drq2_cb.bind(); }
- auto in_memr_callback() { return m_in_memr_cb.bind(); }
- auto out_memw_callback() { return m_out_memw_cb.bind(); }
-
- // I/O operations
- void write(offs_t offset, uint8_t data);
- uint8_t read(offs_t offset);
- template <unsigned CH> auto in_ior_callback() { return m_in_ior_cb[CH].bind(); }
- template <unsigned CH> auto out_iow_callback() { return m_out_iow_cb[CH].bind(); }
-
- template <unsigned CH> DECLARE_WRITE_LINE_MEMBER( dreq_w ) { dma_request(CH, state); }
-
- DECLARE_WRITE_LINE_MEMBER( dgrnt_w ){ m_dgrnt = state; trigger(1); }
-
-protected:
- // device-level overrides
- //virtual void device_validity_check(validity_checker &valid) const override;
- virtual void device_resolve_objects() override;
- virtual void device_start() override;
- virtual void device_reset() override;
- virtual void execute_run() override;
-
- devcb_write_line m_out_int_cb;
- devcb_write8 m_out_txak_cb;
- devcb_write_line m_out_drq1_cb;
- devcb_write_line m_out_drq2_cb;
- devcb_read8 m_in_memr_cb;
- devcb_write8 m_out_memw_cb;
- devcb_read8 m_in_ior_cb[4];
- devcb_write8 m_out_iow_cb[4];
-
- /* channel_data structure holds info about each 6844 DMA channel */
- struct m6844_channel_data
- {
- int active;
- int address;
- int counter;
- // Channel control register.
- // bit 0: Read / Write mode
- // bit 1: Mode control B
- // bit 2: Mode control A
- // bit 3: Address up (0) / down (1).
- // bit 4: Not used
- // bit 5: Not used
- // bit 6: Busy / Ready. Read only. Set when request
- // made. Cleared when transfer completed.
- // bit 7: DMA end flag. Read only? Set when transfer
- // completed. Cleared when control register
- // read. Sets IRQ.
- // Mode control A,B: 0,0 Mode2; 0,1 Mode 3; 1,0 Mode 0;
- // 1,1 Undefined.
- uint8_t control;
- int start_address;
- int start_counter;
- };
-
- /* 6844 description */
- m6844_channel_data m_m6844_channel[4];
- uint8_t m_m6844_priority;
- // Interrupt control register.
- // Bit 0-3: channel interrupt enable, 1 enabled, 0 masked.
- // Bit 4-6: unused
- // Bit 7: Read only. Set to 1 when IRQ asserted. Clear when the
- // control register associated with the channel that caused the
- // interrut is read.
- uint8_t m_m6844_interrupt;
- uint8_t m_m6844_chain;
- void m6844_update_interrupt();
-
- // State machine
- enum {
- STATE_SI,
- STATE_S0,
- STATE_S1,
- STATE_S2
- };
-
- int m_state;
- int m_icount;
- int m_current_channel;
- int m_last_channel;
-
- // input states
- bool m_dgrnt;
- bool m_dreq[4];
-private:
- void dma_request(int channel, int state);
-};
-
-// device type definition
-DECLARE_DEVICE_TYPE(MC6844, mc6844_device)
-
-#endif // MAME_MACHINE_MC6844_H