// license:BSD-3-Clause // copyright-holders:Miodrag Milanovic /***************************************************************************** * * includes/orion.h * ****************************************************************************/ #ifndef MAME_INCLUDES_ORION_H #define MAME_INCLUDES_ORION_H #pragma once #include "includes/radio86.h" #include "cpu/i8085/i8085.h" #include "cpu/z80/z80.h" #include "machine/i8255.h" #include "machine/mc146818.h" #include "machine/ram.h" #include "machine/wd_fdc.h" #include "sound/ay8910.h" #include "sound/spkrdev.h" #include "sound/wave.h" #include "screen.h" class orion_state : public radio86_state { public: orion_state(const machine_config &mconfig, device_type type, const char *tag) : radio86_state(mconfig, type, tag) , m_fdc(*this, "fd1793") , m_ram(*this, RAM_TAG) , m_fd0(*this, "fd0") , m_fd1(*this, "fd1") , m_fd2(*this, "fd2") , m_fd3(*this, "fd3") , m_rtc(*this, "rtc") , m_speaker(*this, "speaker") , m_ay8912(*this, "ay8912") , m_bank2(*this, "bank2") , m_bank3(*this, "bank3") , m_bank4(*this, "bank4") , m_bank5(*this, "bank5") , m_bank6(*this, "bank6") , m_bank7(*this, "bank7") , m_bank8(*this, "bank8") , m_screen(*this, "screen") { } DECLARE_READ8_MEMBER(orion128_system_r); DECLARE_WRITE8_MEMBER(orion128_system_w); DECLARE_READ8_MEMBER(orion128_romdisk_r); DECLARE_WRITE8_MEMBER(orion128_romdisk_w); DECLARE_WRITE8_MEMBER(orion128_video_mode_w); DECLARE_WRITE8_MEMBER(orion128_video_page_w); DECLARE_WRITE8_MEMBER(orion128_memory_page_w); DECLARE_WRITE8_MEMBER(orion_disk_control_w); DECLARE_READ8_MEMBER(orion128_floppy_r); DECLARE_WRITE8_MEMBER(orion128_floppy_w); DECLARE_READ8_MEMBER(orionz80_floppy_rtc_r); DECLARE_WRITE8_MEMBER(orionz80_floppy_rtc_w); DECLARE_WRITE8_MEMBER(orionz80_sound_w); DECLARE_WRITE8_MEMBER(orionz80_sound_fe_w); DECLARE_WRITE8_MEMBER(orionz80_memory_page_w); DECLARE_WRITE8_MEMBER(orionz80_dispatcher_w); DECLARE_READ8_MEMBER(orionz80_io_r); DECLARE_WRITE8_MEMBER(orionz80_io_w); DECLARE_WRITE8_MEMBER(orionpro_memory_page_w); DECLARE_READ8_MEMBER(orionpro_io_r); DECLARE_WRITE8_MEMBER(orionpro_io_w); DECLARE_MACHINE_START(orion128); DECLARE_MACHINE_RESET(orion128); DECLARE_VIDEO_START(orion128); DECLARE_PALETTE_INIT(orion128); DECLARE_MACHINE_START(orionz80); DECLARE_MACHINE_RESET(orionz80); DECLARE_MACHINE_RESET(orionpro); uint32_t screen_update_orion128(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(orionz80_interrupt); DECLARE_READ8_MEMBER(orion_romdisk_porta_r); DECLARE_WRITE8_MEMBER(orion_romdisk_portb_w); DECLARE_WRITE8_MEMBER(orion_romdisk_portc_w); DECLARE_FLOPPY_FORMATS( orion_floppy_formats ); void orionz80(machine_config &config); void orion128ms(machine_config &config); void orion128(machine_config &config); void orionpro(machine_config &config); void orionz80ms(machine_config &config); void orion128_io(address_map &map); void orion128_mem(address_map &map); void orionpro_io(address_map &map); void orionpro_mem(address_map &map); void orionz80_io(address_map &map); void orionz80_mem(address_map &map); protected: uint8_t m_orion128_video_mode; uint8_t m_orion128_video_page; uint8_t m_orion128_video_width; uint8_t m_video_mode_mask; uint8_t m_orionpro_pseudo_color; uint8_t m_romdisk_lsb; uint8_t m_romdisk_msb; uint8_t m_orion128_memory_page; uint8_t m_orionz80_memory_page; uint8_t m_orionz80_dispatcher; uint8_t m_speaker_data; uint8_t m_orionpro_ram0_segment; uint8_t m_orionpro_ram1_segment; uint8_t m_orionpro_ram2_segment; uint8_t m_orionpro_page; uint8_t m_orionpro_128_page; uint8_t m_orionpro_rom2_segment; uint8_t m_orionpro_dispatcher; required_device m_fdc; required_device m_ram; required_device m_fd0; required_device m_fd1; required_device m_fd2; required_device m_fd3; optional_device m_rtc; optional_device m_speaker; optional_device m_ay8912; required_memory_bank m_bank2; optional_memory_bank m_bank3; optional_memory_bank m_bank4; optional_memory_bank m_bank5; optional_memory_bank m_bank6; optional_memory_bank m_bank7; optional_memory_bank m_bank8; required_device m_screen; void orionz80_switch_bank(); void orion_set_video_mode(int width); void orionpro_bank_switch(); }; #endif // MAME_INCLUDES_ORION_H