summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/akiko.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/akiko.h')
-rw-r--r--src/devices/machine/akiko.h131
1 files changed, 0 insertions, 131 deletions
diff --git a/src/devices/machine/akiko.h b/src/devices/machine/akiko.h
deleted file mode 100644
index 7e8436c50f2..00000000000
--- a/src/devices/machine/akiko.h
+++ /dev/null
@@ -1,131 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Mariusz Wojcieszek
-/***************************************************************************
-
- Akiko
-
- Used in the Amiga CD32
-
- - CD-ROM controller
- - Builtin 1KB NVRAM
- - Chunky to planar converter
-
-***************************************************************************/
-
-#ifndef MAME_MACHINE_AKIKO_H
-#define MAME_MACHINE_AKIKO_H
-
-#pragma once
-
-#include "cdrom.h"
-#include "sound/cdda.h"
-
-
-//**************************************************************************
-// TYPE DEFINITIONS
-//**************************************************************************
-
-// ======================> akiko_device
-
-class akiko_device : public device_t
-{
-public:
- akiko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
- // callbacks
- auto mem_r_callback() { return m_mem_r.bind(); }
- auto mem_w_callback() { return m_mem_w.bind(); }
- auto int_callback() { return m_int_w.bind(); }
- auto scl_callback() { return m_scl_w.bind(); }
- auto sda_r_callback() { return m_sda_r.bind(); }
- auto sda_w_callback() { return m_sda_w.bind(); }
-
- DECLARE_READ32_MEMBER( read );
- DECLARE_WRITE32_MEMBER( write );
-
-protected:
- // device-level overrides
- virtual void device_start() override;
- virtual void device_stop() override;
- virtual void device_reset() override;
- virtual void device_add_mconfig(machine_config &config) override;
-
-private:
- // 1X CDROM sector time in msec (300KBps)
- static constexpr int CD_SECTOR_TIME = (1000/((150*1024)/2048));
-
- // chunky to planar converter
- uint32_t m_c2p_input_buffer[8];
- uint32_t m_c2p_output_buffer[8];
- uint32_t m_c2p_input_index;
- uint32_t m_c2p_output_index;
-
- // i2c bus
- int m_i2c_scl_out;
- int m_i2c_scl_dir;
- int m_i2c_sda_out;
- int m_i2c_sda_dir;
-
- // cdrom
- uint32_t m_cdrom_status[2];
- uint32_t m_cdrom_address[2];
- uint32_t m_cdrom_track_index;
- uint32_t m_cdrom_lba_start;
- uint32_t m_cdrom_lba_end;
- uint32_t m_cdrom_lba_cur;
- uint16_t m_cdrom_readmask;
- uint16_t m_cdrom_readreqmask;
- uint32_t m_cdrom_dmacontrol;
- uint32_t m_cdrom_numtracks;
- uint8_t m_cdrom_speed;
- uint8_t m_cdrom_cmd_start;
- uint8_t m_cdrom_cmd_end;
- uint8_t m_cdrom_cmd_resp;
-
- cdda_device *m_cdda;
- cdrom_file *m_cdrom;
-
- std::unique_ptr<uint8_t[]> m_cdrom_toc;
-
- emu_timer *m_dma_timer;
- emu_timer *m_frame_timer;
-
- int m_cdrom_is_device;
-
- void nvram_write(uint32_t data);
- uint32_t nvram_read();
-
- uint8_t mem_r8(offs_t offset);
- void mem_w8(offs_t offset, uint8_t data);
-
- void c2p_write(uint32_t data);
- uint32_t c2p_read();
-
- void cdda_stop();
- void cdda_play(uint32_t lba, uint32_t num_blocks);
- void cdda_pause(int pause);
- uint8_t cdda_getstatus(uint32_t *lba);
- void set_cd_status(uint32_t status);
-
- TIMER_CALLBACK_MEMBER( frame_proc );
- TIMER_CALLBACK_MEMBER( dma_proc );
-
- void start_dma();
- void setup_response( int len, uint8_t *r1 );
-
- TIMER_CALLBACK_MEMBER( cd_delayed_cmd );
- void update_cdrom();
-
- // interface
- devcb_read16 m_mem_r;
- devcb_write16 m_mem_w;
- devcb_write_line m_int_w;
- devcb_write_line m_scl_w;
- devcb_read_line m_sda_r;
- devcb_write_line m_sda_w;
-};
-
-// device type definition
-DECLARE_DEVICE_TYPE(AKIKO, akiko_device)
-
-#endif // MAME_MACHINE_AKIKO_H