summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine/coco3.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/machine/coco3.c')
-rw-r--r--src/mess/machine/coco3.c167
1 files changed, 0 insertions, 167 deletions
diff --git a/src/mess/machine/coco3.c b/src/mess/machine/coco3.c
deleted file mode 100644
index 40624853dec..00000000000
--- a/src/mess/machine/coco3.c
+++ /dev/null
@@ -1,167 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nathan Woods
-/***************************************************************************
-
- coco3.c
-
- TRS-80 Radio Shack Color Computer 3
-
- Functions to emulate general aspects of the machine (RAM, ROM, interrupts,
- I/O ports)
-
- The Dragon/CoCo2 have two PIAs. These PIAs can trigger interrupts. PIA0
- is set up to trigger IRQ on the CPU, and PIA1 can trigger FIRQ. Each PIA
- has two output lines, and an interrupt will be triggered if either of these
- lines are asserted.
-
- ----- IRQ
- 6809 |-<----------- PIA0
- |
- |
- |
- |
- |
- |-<----------- PIA1
- -----
-
- The CoCo 3 still supports these interrupts, but the GIME can chose whether
- "old school" interrupts are generated, or the new ones generated by the GIME
-
- ----- IRQ
- 6809 |-<----------- PIA0
- | | ------
- | -<-------<-------| |
- | |GIME|
- | -<-------<-------| |
- | FIRQ | ------
- |-<----------- PIA1
- -----
-
- In an email discussion with JK, he informs me that when GIME interrupts are
- enabled, this actually does not prevent PIA interrupts. Apparently JeffV's
- CoCo 3 emulator did not handle this properly.
-
-***************************************************************************/
-
-#include "includes/coco3.h"
-
-//-------------------------------------------------
-// ff20_write
-//-------------------------------------------------
-
-WRITE8_MEMBER( coco3_state::ff20_write )
-{
- coco_state::ff20_write(space, offset, data, mem_mask);
-
- if (offset == 0x02)
- m_gime->ff22_write(data);
-}
-
-
-
-//-------------------------------------------------
-// ff40_read
-//-------------------------------------------------
-
-READ8_MEMBER( coco3_state::ff40_read )
-{
- UINT8 result = 0x00;
- if (m_gime->spare_chip_select_enabled())
- result = coco_state::ff40_read(space, offset, mem_mask);
- return result;
-}
-
-
-
-//-------------------------------------------------
-// ff40_write
-//-------------------------------------------------
-
-WRITE8_MEMBER( coco3_state::ff40_write )
-{
- if (m_gime->spare_chip_select_enabled())
- coco_state::ff40_write(space, offset, data, mem_mask);
-}
-
-
-
-//-------------------------------------------------
-// firq_get_line
-//-------------------------------------------------
-
-bool coco3_state::firq_get_line(void)
-{
- return coco_state::firq_get_line() || m_gime->firq_r();
-}
-
-
-
-//-------------------------------------------------
-// irq_get_line
-//-------------------------------------------------
-
-bool coco3_state::irq_get_line(void)
-{
- return coco_state::irq_get_line() || m_gime->irq_r();
-}
-
-
-
-//-------------------------------------------------
-// update_keyboard_input
-//-------------------------------------------------
-
-void coco3_state::update_keyboard_input(UINT8 value, UINT8 z)
-{
- coco_state::update_keyboard_input(value, z);
- m_gime->set_il1(value == 0xFF);
-}
-
-
-
-//-------------------------------------------------
-// cart_w
-//-------------------------------------------------
-
-void coco3_state::cart_w(bool state)
-{
- coco_state::cart_w(state);
- m_gime->set_il0(state);
-}
-
-
-
-//-------------------------------------------------
-// update_cart_base
-//-------------------------------------------------
-
-void coco3_state::update_cart_base(UINT8 *cart_base)
-{
- m_gime->update_cart_rom();
-}
-
-
-
-//-------------------------------------------------
-// screen_update
-//-------------------------------------------------
-
-UINT32 coco3_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
-{
- bool result;
- if (!strcmp(screen.tag(), ":" COMPOSITE_SCREEN_TAG))
- {
- /* composite screen */
- result = m_gime->update_composite(bitmap, cliprect);
- }
- else if (!strcmp(screen.tag(), ":" RGB_SCREEN_TAG))
- {
- /* rgb screen */
- result = m_gime->update_rgb(bitmap, cliprect);
- }
- else
- {
- fatalerror("Called screen_update() with invalid tag '%s'\n", screen.tag());
- }
- return result;
-}