summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/apple2.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/apple2.h')
-rw-r--r--src/mame/includes/apple2.h395
1 files changed, 0 insertions, 395 deletions
diff --git a/src/mame/includes/apple2.h b/src/mame/includes/apple2.h
deleted file mode 100644
index a218b806d88..00000000000
--- a/src/mame/includes/apple2.h
+++ /dev/null
@@ -1,395 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:R. Belmont
-/***************************************************************************
-
- includes/apple2.h
-
- Include file to handle emulation of the Apple II series.
-
-***************************************************************************/
-
-#ifndef MAME_INCLUDES_APPLE2_H
-#define MAME_INCLUDES_APPLE2_H
-
-#include "cpu/m6502/m6502.h"
-#include "cpu/m6502/m65c02.h"
-
-#include "imagedev/cassette.h"
-
-#include "machine/applefdc.h"
-#include "machine/kb3600.h"
-#include "machine/mos6551.h"
-#include "machine/ram.h"
-#include "machine/timer.h"
-
-#include "sound/spkrdev.h"
-
-#include "bus/a2bus/a2bus.h"
-#include "bus/a2bus/a2eauxslot.h"
-#include "bus/rs232/rs232.h"
-
-#include "emupal.h"
-#include "screen.h"
-
-
-#define AUXSLOT_TAG "auxbus"
-
-#define IIC_ACIA1_TAG "acia1"
-#define IIC_ACIA2_TAG "acia2"
-#define IICP_IWM_TAG "fdc"
-
-#define LASER128_UDC_TAG "l128udc"
-
-#define PRINTER_PORT_TAG "printer"
-#define MODEM_PORT_TAG "modem"
-
-/***************************************************************************
- SOFTSWITCH VALUES
-***************************************************************************/
-
-#define VAR_80STORE 0x000001
-#define VAR_RAMRD 0x000002
-#define VAR_RAMWRT 0x000004
-#define VAR_INTCXROM 0x000008
-#define VAR_ALTZP 0x000010
-#define VAR_SLOTC3ROM 0x000020
-#define VAR_80COL 0x000040
-#define VAR_ALTCHARSET 0x000080
-#define VAR_TEXT 0x000100
-#define VAR_MIXED 0x000200
-#define VAR_PAGE2 0x000400
-#define VAR_HIRES 0x000800
-#define VAR_AN0 0x001000
-#define VAR_AN1 0x002000
-#define VAR_AN2 0x004000
-#define VAR_AN3 0x008000
-#define VAR_LCRAM 0x010000
-#define VAR_LCRAM2 0x020000
-#define VAR_LCWRITE 0x040000
-#define VAR_ROMSWITCH 0x080000
-#define VAR_TK2000RAM 0x100000 // ROM/RAM switch for TK2000
-
-#define VAR_DHIRES VAR_AN3
-
-/***************************************************************************
- OTHER
-***************************************************************************/
-
-/* -----------------------------------------------------------------------
- * New Apple II memory manager
- * ----------------------------------------------------------------------- */
-
-#define APPLE2_MEM_AUX 0x40000000
-#define APPLE2_MEM_SLOT 0x80000000
-#define APPLE2_MEM_ROM 0xC0000000
-#define APPLE2_MEM_FLOATING 0xFFFFFFFF
-#define APPLE2_MEM_MASK 0x00FFFFFF
-
-enum machine_type_t
-{
- APPLE_II, // Apple II/II+
- APPLE_IIE, // Apple IIe with aux slots
- APPLE_IIGS, // Apple IIgs
- APPLE_IIC, // Apple IIc
- APPLE_IICPLUS, // Apple IIc+
- TK2000, // Microdigital TK2000
- TK3000, // Microdigital TK3000
- LASER128, // Laser 128/128EX/128EX2
- SPACE84, // "Space 84" with flipped text mode
- LABA2P // lab equipment (?) II Plus with flipped text mode
-};
-
-enum bank_disposition_t
-{
- A2MEM_IO = 0, /* this is always handlers; never banked memory */
- A2MEM_MONO = 1, /* this is a bank where read and write are always in unison */
- A2MEM_DUAL = 2 /* this is a bank where read and write can go different places */
-};
-
-struct apple2_meminfo
-{
- uint32_t read_mem;
- read8_delegate *read_handler;
- uint32_t write_mem;
- write8_delegate *write_handler;
-};
-
-struct apple2_memmap_entry
-{
- offs_t begin;
- offs_t end;
- void (*get_meminfo)(running_machine &machine, offs_t begin, offs_t end, apple2_meminfo *meminfo);
- bank_disposition_t bank_disposition;
-};
-
-struct apple2_memmap_config
-{
- int first_bank;
- uint8_t *auxmem;
- uint32_t auxmem_length;
- const apple2_memmap_entry *memmap;
-};
-
-class apple2_state : public driver_device
-{
-public:
- apple2_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_screen(*this, "screen"),
- m_ram(*this, RAM_TAG),
- m_ay3600(*this, "ay3600"),
- m_a2bus(*this, "a2bus"),
- m_speaker(*this, "a2speaker"),
- m_a2eauxslot(*this, AUXSLOT_TAG),
- m_joy1x(*this, "joystick_1_x"),
- m_joy1y(*this, "joystick_1_y"),
- m_joy2x(*this, "joystick_2_x"),
- m_joy2y(*this, "joystick_2_y"),
- m_joybuttons(*this, "joystick_buttons"),
- m_kbdrom(*this, "keyboard"),
- m_kbspecial(*this, "keyb_special"),
- m_kbrepeat(*this, "keyb_repeat"),
- m_resetdip(*this, "reset_dip"),
- m_sysconfig(*this, "a2_config"),
- m_cassette(*this, "cassette"),
- m_acia1(*this, IIC_ACIA1_TAG),
- m_acia2(*this, IIC_ACIA2_TAG),
- m_laserudc(*this, LASER128_UDC_TAG),
- m_iicpiwm(*this, IICP_IWM_TAG)
- { }
-
- required_device<cpu_device> m_maincpu;
- required_device<screen_device> m_screen;
- required_device<ram_device> m_ram;
- required_device<ay3600_device> m_ay3600;
- required_device<a2bus_device> m_a2bus;
- required_device<speaker_sound_device> m_speaker;
- optional_device<a2eauxslot_device> m_a2eauxslot;
-
- optional_ioport m_joy1x, m_joy1y, m_joy2x, m_joy2y, m_joybuttons;
- optional_memory_region m_kbdrom;
- required_ioport m_kbspecial;
- optional_ioport m_kbrepeat;
- optional_ioport m_resetdip;
- optional_ioport m_sysconfig;
- optional_device<cassette_image_device> m_cassette;
-
- optional_device<mos6551_device> m_acia1, m_acia2;
- optional_device<applefdc_base_device> m_laserudc;
- optional_device<iwm_device> m_iicpiwm;
-
- uint32_t m_flags, m_flags_mask;
- int32_t m_a2_cnxx_slot;
- uint32_t m_a2_mask;
- uint32_t m_a2_set;
- int m_a2_speaker_state;
- double m_joystick_x1_time;
- double m_joystick_y1_time;
- double m_joystick_x2_time;
- double m_joystick_y2_time;
- apple2_memmap_config m_mem_config;
- std::unique_ptr<apple2_meminfo[]> m_current_meminfo;
- int m_fdc_diskreg;
- const uint8_t *m_a2_videoram, *m_a2_videoaux, *m_textgfx_data;
- uint32_t m_a2_videomask, m_textgfx_datalen;
- uint32_t m_old_a2;
- int m_fgcolor;
- int m_bgcolor;
- int m_flash;
- int m_alt_charset_value;
- std::unique_ptr<uint16_t[]> m_hires_artifact_map;
- std::unique_ptr<uint16_t[]> m_dhires_artifact_map;
- bool m_monochrome_dhr;
- int m_inh_slot;
- int m_reset_flag;
-
- uint8_t *m_rambase;
-
- uint8_t *m_rom, *m_slot_ram;
- uint32_t m_rom_length, m_slot_length;
-
- machine_type_t m_machinetype;
-
- device_a2eauxslot_card_interface *m_auxslotdevice;
-
- uint16_t m_lastchar, m_strobe;
- uint8_t m_transchar;
-
- READ8_MEMBER(apple2_c0xx_r);
- WRITE8_MEMBER(apple2_c0xx_w);
- READ8_MEMBER(apple2_c080_r);
- WRITE8_MEMBER(apple2_c080_w);
-
- READ8_MEMBER ( apple2_c00x_r );
- READ8_MEMBER ( apple2_c01x_r );
- READ8_MEMBER ( apple2_c02x_r );
- READ8_MEMBER ( apple2_c03x_r );
- READ8_MEMBER ( apple2_c05x_r );
- READ8_MEMBER ( apple2_c06x_r );
- READ8_MEMBER ( apple2_c07x_r );
- WRITE8_MEMBER ( apple2_c00x_w );
- WRITE8_MEMBER ( apple2_c01x_w );
- WRITE8_MEMBER ( apple2_c02x_w );
- WRITE8_MEMBER ( apple2_c03x_w );
- WRITE8_MEMBER ( apple2_c05x_w );
- WRITE8_MEMBER ( apple2_c07x_w );
-
- READ8_MEMBER ( apple2_mainram0000_r );
- READ8_MEMBER ( apple2_mainram0200_r );
- READ8_MEMBER ( apple2_mainram0400_r );
- READ8_MEMBER ( apple2_mainram0800_r );
- READ8_MEMBER ( apple2_mainram2000_r );
- READ8_MEMBER ( apple2_mainram4000_r );
- READ8_MEMBER ( apple2_mainramc000_r );
- READ8_MEMBER ( apple2_mainramd000_r );
- READ8_MEMBER ( apple2_mainrame000_r );
- READ8_MEMBER ( apple2_auxram0000_r );
- READ8_MEMBER ( apple2_auxram0200_r );
- READ8_MEMBER ( apple2_auxram0400_r );
- READ8_MEMBER ( apple2_auxram0800_r );
- READ8_MEMBER ( apple2_auxram2000_r );
- READ8_MEMBER ( apple2_auxram4000_r );
- READ8_MEMBER ( apple2_auxramc000_r );
- READ8_MEMBER ( apple2_auxramd000_r );
- READ8_MEMBER ( apple2_auxrame000_r );
-
- WRITE8_MEMBER ( apple2_mainram0000_w );
- WRITE8_MEMBER ( apple2_mainram0200_w );
- WRITE8_MEMBER ( apple2_mainram0400_w );
- WRITE8_MEMBER ( apple2_mainram0800_w );
- WRITE8_MEMBER ( apple2_mainram2000_w );
- WRITE8_MEMBER ( apple2_mainram4000_w );
- WRITE8_MEMBER ( apple2_mainramc000_w );
- WRITE8_MEMBER ( apple2_mainramd000_w );
- WRITE8_MEMBER ( apple2_mainrame000_w );
- WRITE8_MEMBER ( apple2_auxram0000_w );
- WRITE8_MEMBER ( apple2_auxram0200_w );
- WRITE8_MEMBER ( apple2_auxram0400_w );
- WRITE8_MEMBER ( apple2_auxram0800_w );
- WRITE8_MEMBER ( apple2_auxram2000_w );
- WRITE8_MEMBER ( apple2_auxram4000_w );
- WRITE8_MEMBER ( apple2_auxramc000_w );
- WRITE8_MEMBER ( apple2_auxramd000_w );
- WRITE8_MEMBER ( apple2_auxrame000_w );
-
- READ8_MEMBER ( apple2_c1xx_r );
- WRITE8_MEMBER ( apple2_c1xx_w );
- READ8_MEMBER ( apple2_c3xx_r );
- WRITE8_MEMBER ( apple2_c3xx_w );
- READ8_MEMBER ( apple2_c4xx_r );
- WRITE8_MEMBER ( apple2_c4xx_w );
-
- READ8_MEMBER ( apple2_c800_r );
- WRITE8_MEMBER ( apple2_c800_w );
- READ8_MEMBER ( apple2_ce00_r );
- WRITE8_MEMBER ( apple2_ce00_w );
-
- READ8_MEMBER ( apple2_inh_d000_r );
- WRITE8_MEMBER ( apple2_inh_d000_w );
- READ8_MEMBER ( apple2_inh_e000_r );
- WRITE8_MEMBER ( apple2_inh_e000_w );
-
- READ8_MEMBER(read_floatingbus);
-
- READ8_MEMBER(apple2_cfff_r);
- WRITE8_MEMBER(apple2_cfff_w);
-
- void apple2_refresh_delegates();
- int apple2_pressed_specialkey(uint8_t key);
- void langcard_touch(offs_t offset);
-
- read8_delegate read_delegates_master[4];
- write8_delegate write_delegates_master[3];
- write8_delegate write_delegates_0000[2];
- write8_delegate write_delegates_0200[2];
- write8_delegate write_delegates_0400[2];
- write8_delegate write_delegates_0800[2];
- write8_delegate write_delegates_2000[2];
- write8_delegate write_delegates_4000[2];
- write8_delegate write_delegates_c000[2];
- write8_delegate write_delegates_d000[2];
- write8_delegate write_delegates_e000[2];
- read8_delegate read_delegates_0000[2];
- read8_delegate read_delegates_0200[2];
- read8_delegate read_delegates_0400[2];
- read8_delegate read_delegates_0800[2];
- read8_delegate read_delegates_2000[2];
- read8_delegate read_delegates_4000[2];
- read8_delegate read_delegates_c000[2];
- read8_delegate read_delegates_d000[2];
- read8_delegate read_delegates_e000[2];
- read8_delegate rd_c000;
- write8_delegate wd_c000;
- read8_delegate rd_c080;
- write8_delegate wd_c080;
- read8_delegate rd_cfff;
- write8_delegate wd_cfff;
- read8_delegate rd_c800;
- write8_delegate wd_c800;
- read8_delegate rd_ce00;
- write8_delegate wd_ce00;
- read8_delegate rd_inh_d000;
- write8_delegate wd_inh_d000;
- read8_delegate rd_inh_e000;
- write8_delegate wd_inh_e000;
- DECLARE_MACHINE_START(apple2orig);
- DECLARE_MACHINE_START(apple2e);
- DECLARE_MACHINE_START(apple2c);
- DECLARE_MACHINE_START(apple2cp);
- DECLARE_MACHINE_START(tk2000);
- DECLARE_MACHINE_START(tk3000);
- DECLARE_MACHINE_START(laser128);
- DECLARE_MACHINE_START(space84);
- DECLARE_MACHINE_START(laba2p);
- DECLARE_VIDEO_START(apple2);
- DECLARE_PALETTE_INIT(apple2);
- DECLARE_VIDEO_START(apple2p);
- DECLARE_VIDEO_START(apple2e);
- DECLARE_VIDEO_START(apple2c);
- uint32_t screen_update_apple2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TIMER_DEVICE_CALLBACK_MEMBER(apple2_interrupt);
- DECLARE_WRITE_LINE_MEMBER(a2bus_irq_w);
- DECLARE_WRITE_LINE_MEMBER(a2bus_nmi_w);
- DECLARE_WRITE_LINE_MEMBER(a2bus_inh_w);
- DECLARE_READ_LINE_MEMBER(ay3600_shift_r);
- DECLARE_READ_LINE_MEMBER(ay3600_control_r);
- DECLARE_WRITE_LINE_MEMBER(ay3600_data_ready_w);
- DECLARE_WRITE_LINE_MEMBER(ay3600_iie_data_ready_w);
- void apple2_update_memory_postload();
- virtual void machine_reset() override;
- void apple2_setup_memory(const apple2_memmap_config *config);
- void apple2_update_memory();
- inline uint32_t effective_a2();
- uint32_t compute_video_address(int col, int row);
- void adjust_begin_and_end_row(const rectangle &cliprect, int *beginrow, int *endrow);
- inline void apple2_plot_text_character(bitmap_ind16 &bitmap, int xpos, int ypos, int xscale, uint32_t code,
- const uint8_t *textgfx_data, uint32_t textgfx_datalen, uint32_t my_a2);
- void apple2_text_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int page, int beginrow, int endrow);
- void apple2_lores_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int page, int beginrow, int endrow);
- void apple2_hires_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int page, int beginrow, int endrow);
- void apple2_video_start(const uint8_t *vram, const uint8_t *aux_vram, uint32_t ignored_softswitches, int hires_modulo);
- void apple2_setvar(uint32_t val, uint32_t mask);
- uint8_t apple2_getfloatingbusvalue();
- int apple2_fdc_has_35();
- int apple2_fdc_has_525();
- void apple2_iwm_setdiskreg(uint8_t data);
- void apple2_init_common();
- void apple2eplus_init_common(void *apple2cp_ce00_ram);
- int8_t apple2_slotram_r(int slotnum, int offset);
- int a2_no_ctrl_reset();
-
-private:
- // Laser 128EX2 slot 5 Apple Memory Expansion emulation vars
- uint8_t m_exp_bankhior;
- int m_exp_addrmask;
- uint8_t m_exp_regs[0x10];
- std::unique_ptr<uint8_t[]> m_exp_ram;
- int m_exp_wptr, m_exp_liveptr;
-};
-/*----------- defined in drivers/apple2.c -----------*/
-INPUT_PORTS_EXTERN( apple2ep );
-/*----------- defined in machine/apple2.c -----------*/
-extern const applefdc_interface apple2_fdc_interface;
-
-#endif // MAME_INCLUDES_APPLE2_H