summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Michael Zapf <github@mizapf.de>2020-02-04 21:28:39 +0100
committer Michael Zapf <github@mizapf.de>2020-02-04 21:30:08 +0100
commitba45b89bfd77a30a0f7c1c43ac58445ff52dd8e6 (patch)
treeaf7f0067093b75e470b15a3f5a312faf00604c7e
parentf22a130dc03d4b4a471a0f79f1e683837479b935 (diff)
ti99: Added VRAM size option to Enhanced Video Processor Card.
-rw-r--r--src/devices/bus/ti99/peb/evpc.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/devices/bus/ti99/peb/evpc.cpp b/src/devices/bus/ti99/peb/evpc.cpp
index 3c97a282fd5..298b1c6432c 100644
--- a/src/devices/bus/ti99/peb/evpc.cpp
+++ b/src/devices/bus/ti99/peb/evpc.cpp
@@ -27,6 +27,9 @@
Thus we assume that in the TI console (option 1) the sound chip has
also been removed.
+ The EVPC has one configuration option:
+ VRAM may be set to 128K or 192K.
+
Important note: The DSR (firmware) of the EVPC expects a memory expansion
to be present; otherwise, the configuration (using CALL EVPC) will crash.
There is no warning if the 32K expansion is not present.
@@ -416,6 +419,7 @@ void snug_enhanced_video_device::device_reset()
m_dsr_page = 0;
m_RAMEN = false;
m_selected = false;
+ m_video->set_vram_size((ioport("EVPC-MEM")->read()==0)? 0x20000 : 0x30000);
}
void snug_enhanced_video_device::device_stop()
@@ -469,6 +473,11 @@ INPUT_PORTS_START( ti99_evpc )
PORT_DIPNAME( 0x01, 0x00, "EVPC Configuration" )
PORT_DIPSETTING( 0x00, "DIP" )
PORT_DIPSETTING( 0x01, "NOVRAM" )
+
+ PORT_START( "EVPC-MEM" )
+ PORT_CONFNAME( 0x01, 0x00, "EVPC video memory" )
+ PORT_DIPSETTING( 0x00, "128K" )
+ PORT_DIPSETTING( 0x01, "192K" )
INPUT_PORTS_END
const tiny_rom_entry *snug_enhanced_video_device::device_rom_region() const
@@ -485,7 +494,7 @@ void snug_enhanced_video_device::device_add_mconfig(machine_config& config)
{
// video hardware
V9938(config, m_video, XTAL(21'477'272)); // typical 9938 clock, not verified
- m_video->set_vram_size(0x20000);
+
m_video->int_cb().set(FUNC(snug_enhanced_video_device::video_interrupt_in));
m_video->set_screen(TI_SCREEN_TAG);
screen_device& screen(SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER));