flower: remove unneeded vblank irq trampoline,

vidbrain: fix regression with ext interrupt, invert joystick select pins,
bus/vidbrain: unmap_r/w shouldn't lower cs2 pin

Software list items promoted to working
---------------------------------------
vidbrain: Money Minder [hap]

New software list items marked not working
------------------------------------------
vidbrain: The Computational Language [Sean Riddle, Ianoid]
This commit is contained in:
hap 2023-07-14 21:48:05 +02:00
parent a5f3663a4d
commit 0cae4d6d40
9 changed files with 101 additions and 108 deletions

View File

@ -3,34 +3,31 @@
<!--
license:CC0-1.0
Undumped cartridges
All officially released cartridges have been dumped.
Money Management Series:
APL/S The Computational Language
Advertised but never released cartridges:
Money Management Series:
- VB-59 The Programmable
- VB-1100 Budget System
- VB-1200 Information Manager
Advertised but never released cartridges
Education Series:
- ED07 Musicianship 1
- ED08 Number Cross
- ED09 Historical Simulation: France in the Old Regime
Money Management Series:
VB-59 The Programmable
VB-1100 Budget System
VB-1200 Information Manager
Education Series:
ED07 Musicianship 1
ED08 Number Cross
ED09 Historical Simulation - France in the Old Regime
Entertainment Series:
EN07 Challenge Racer
EN08 Music Programmer
EN09 Programmable Football
EN10 Computer Life
Entertainment Series:
- EN07 Challenge Racer
- EN08 Music Programmer
- EN09 Programmable Football
- EN10 Computer Life
-->
<softwarelist name="vidbrain" description="VideoBrain Family Computer cartridges">
<!-- Communication Series -->
<!-- Communications Series (orange) -->
<software name="timeshar" supported="no">
<description>Timeshare</description>
@ -40,13 +37,14 @@ license:CC0-1.0
<part name="cart" interface="vidbrain_cart">
<feature name="slot" value="timeshare" />
<dataarea name="rom" size="0x800">
<rom name="timeshare (1978)(videobrain computer company)(videobrain)(cart)[cm01].bin" size="0x800" crc="957d7246" sha1="cb8eb48f7bf895b87975f2386451286143087fff" offset="0" />
<rom name="timeshare-cm01.bin" size="0x800" crc="957d7246" sha1="cb8eb48f7bf895b87975f2386451286143087fff" />
</dataarea>
<dataarea name="ram" size="0x800"/>
</part>
</software>
<!-- Education Series -->
<!-- Education Series (blue) -->
<software name="musictch">
<description>Music Teacher 1</description>
@ -55,7 +53,7 @@ license:CC0-1.0
<info name="serial" value="ED01"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x800">
<rom name="musicteacher1-ed01.bin" size="0x800" crc="c8fee8cd" sha1="1a0a19ecedfb2d918e4e1a4eb604a07dc5e1113f" offset="0" />
<rom name="musicteacher1-ed01.bin" size="0x800" crc="c8fee8cd" sha1="1a0a19ecedfb2d918e4e1a4eb604a07dc5e1113f" />
</dataarea>
</part>
</software>
@ -67,7 +65,7 @@ license:CC0-1.0
<info name="serial" value="ED02"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x1000">
<rom name="mathtutor1-ed02.bin" size="0x1000" crc="db47f770" sha1="efe9e5f7ee95e157af892b84de5653c0f85a13b0" offset="0" />
<rom name="mathtutor1-ed02.bin" size="0x1000" crc="db47f770" sha1="efe9e5f7ee95e157af892b84de5653c0f85a13b0" />
</dataarea>
</part>
</software>
@ -79,7 +77,7 @@ license:CC0-1.0
<info name="serial" value="ED03"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x800">
<rom name="wordwise1-ed03.bin" size="0x800" crc="d1546212" sha1="91594485442e2dfad059e4ce42aa60b7a0519d91" offset="0" />
<rom name="wordwise1-ed03.bin" size="0x800" crc="d1546212" sha1="91594485442e2dfad059e4ce42aa60b7a0519d91" />
</dataarea>
</part>
</software>
@ -91,7 +89,7 @@ license:CC0-1.0
<info name="serial" value="ED04"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x800">
<rom name="wordwise2-ed04.bin" size="0x800" crc="4a08e999" sha1="0b17ead29aea643da84d495ebab5220e547abf99" offset="0" />
<rom name="wordwise2-ed04.bin" size="0x800" crc="4a08e999" sha1="0b17ead29aea643da84d495ebab5220e547abf99" />
</dataarea>
</part>
</software>
@ -103,7 +101,7 @@ license:CC0-1.0
<info name="serial" value="ED05"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x800">
<rom name="videoartist-ed05.bin" size="0x800" crc="d68795f8" sha1="dfb118d6bba837aa8e6b7feb19be7de40cd1e4fa" offset="0" />
<rom name="videoartist-ed05.bin" size="0x800" crc="d68795f8" sha1="dfb118d6bba837aa8e6b7feb19be7de40cd1e4fa" />
</dataarea>
</part>
</software>
@ -115,12 +113,13 @@ license:CC0-1.0
<info name="serial" value="ED06"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x1000">
<rom name="lemonadestand-ed06.bin" size="0x1000" crc="27c08d93" sha1="faf47261797692e9081dc24f957f8f38dc1a975d" offset="0" />
<rom name="lemonadestand-ed06.bin" size="0x1000" crc="27c08d93" sha1="faf47261797692e9081dc24f957f8f38dc1a975d" />
</dataarea>
</part>
</software>
<!-- Entertainment Series -->
<!-- Entertainment Series (red) -->
<software name="gladiatr">
<description>Gladiator</description>
@ -129,7 +128,7 @@ license:CC0-1.0
<info name="serial" value="EN01"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x1000">
<rom name="gladiator-en01.bin" size="0x1000" crc="e6a88a49" sha1="ffdb06a714cc5bafa980db0742d0364ee5658c05" offset="0" />
<rom name="gladiator-en01.bin" size="0x1000" crc="e6a88a49" sha1="ffdb06a714cc5bafa980db0742d0364ee5658c05" />
</dataarea>
</part>
</software>
@ -141,7 +140,7 @@ license:CC0-1.0
<info name="serial" value="EN02"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x800">
<rom name="pinball-en02.bin" size="0x800" crc="484331ff" sha1="0bd04368692a55bf89f8ec7ff1a29cff3a398b9f" offset="0" />
<rom name="pinball-en02.bin" size="0x800" crc="484331ff" sha1="0bd04368692a55bf89f8ec7ff1a29cff3a398b9f" />
</dataarea>
</part>
</software>
@ -153,7 +152,7 @@ license:CC0-1.0
<info name="serial" value="EN03"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x1000">
<rom name="tennis-en03.bin" size="0x1000" crc="1942f852" sha1="74e8304d8ad0328655627e21c0305b72c11a5dda" offset="0" />
<rom name="tennis-en03.bin" size="0x1000" crc="1942f852" sha1="74e8304d8ad0328655627e21c0305b72c11a5dda" />
</dataarea>
</part>
</software>
@ -165,7 +164,7 @@ license:CC0-1.0
<info name="serial" value="EN04"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x1000">
<rom name="checkers-en04.bin" size="0x1000" crc="24c53410" sha1="f12f448d1f62b56318cb94b8f802180d561e3ee5" offset="0" />
<rom name="checkers-en04.bin" size="0x1000" crc="24c53410" sha1="f12f448d1f62b56318cb94b8f802180d561e3ee5" />
</dataarea>
</part>
</software>
@ -177,7 +176,7 @@ license:CC0-1.0
<info name="serial" value="EN05"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x800">
<rom name="blackjack-en05.bin" size="0x800" crc="47f02b92" sha1="23fd10c9674d304f2a0a4ae37e3afb6a25906b1c" offset="0" />
<rom name="blackjack-en05.bin" size="0x800" crc="47f02b92" sha1="23fd10c9674d304f2a0a4ae37e3afb6a25906b1c" />
</dataarea>
</part>
</software>
@ -189,12 +188,33 @@ license:CC0-1.0
<info name="serial" value="EN06"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x1000">
<rom name="viceversa-en06.bin" size="0x1000" crc="e23504ee" sha1="c5b4b62c9e0db998c2c4df6f71713a1df35c8bf4" offset="0" />
<rom name="viceversa-en06.bin" size="0x1000" crc="e23504ee" sha1="c5b4b62c9e0db998c2c4df6f71713a1df35c8bf4" />
</dataarea>
</part>
</software>
<!-- Money Management Series -->
<!-- Money Management Series (green) -->
<software name="complang" supported="no">
<description>The Computational Language</description>
<year>1978</year>
<publisher>VideoBrain Computer Company</publisher>
<info name="serial" value="APL/S"/>
<part name="cart" interface="vidbrain_cart">
<feature name="slot" value="complang" />
<dataarea name="rom" size="0x3800">
<rom name="apls_a.bin" offset="0x0000" size="0x800" crc="e0b883c8" sha1="30508b45d7120119e081a09433ee1eef4152b11a" />
<rom name="apls_b.bin" offset="0x0800" size="0x800" crc="93c869d2" sha1="4c414d5b1df35dde1d816d502cb85f19977d3a71" />
<rom name="apls_c.bin" offset="0x1000" size="0x800" crc="98fbf99c" sha1="9e45794f5b0f0b321ee7ee8fa7420816ab3ff52a" />
<rom name="apls_d.bin" offset="0x1800" size="0x800" crc="31adadcc" sha1="deb38e30d09e3b8de93d3be4ae9a0f7aae718537" />
<rom name="apls_e.bin" offset="0x2000" size="0x800" crc="47048589" sha1="43417af8a509f971f42616a0b9dbf9af3e977bb3" />
<rom name="apls_f.bin" offset="0x2800" size="0x800" crc="b74e799e" sha1="67694da241fc336c01dfca9a81c0d334f343bb47" />
<rom name="apls_g.bin" offset="0x3000" size="0x800" crc="6d5773fa" sha1="96401d934617bbf54af836c1efc0232e9718067b" />
</dataarea>
<dataarea name="ram" size="0x800"/>
</part>
</software>
<software name="financie">
<description>Financier</description>
@ -203,12 +223,12 @@ license:CC0-1.0
<info name="serial" value="VB-81"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x1000">
<rom name="financier (1978)(videobrain computer company)(videobrain)(cart)[vb-81].bin" size="0x1000" crc="721a4a14" sha1="d3b745106c736dcf44aeca533f22772aabff0a4f" offset="0" />
<rom name="financier-vb81.bin" size="0x1000" crc="721a4a14" sha1="d3b745106c736dcf44aeca533f22772aabff0a4f" />
</dataarea>
</part>
</software>
<software name="moneymin" supported="no">
<software name="moneymin">
<description>Money Minder</description>
<year>1978</year>
<publisher>VideoBrain Computer Company</publisher>
@ -216,29 +236,30 @@ license:CC0-1.0
<part name="cart" interface="vidbrain_cart">
<feature name="slot" value="moneyminder" />
<dataarea name="rom" size="0x1000">
<rom name="moneymanager-vb1000.bin" size="0x1000" crc="4f588081" sha1="afb95754d4710b2989689c877b775706b2a7a43d" offset="0" />
<rom name="moneymanager-vb1000.bin" size="0x1000" crc="4f588081" sha1="afb95754d4710b2989689c877b775706b2a7a43d" />
</dataarea>
<dataarea name="ram" size="0x800"/>
</part>
</software>
<software name="infoman" supported="no">
<description>Information Manager (Proto)</description>
<description>Information Manager (prototype)</description>
<year>1978</year>
<publisher>VideoBrain Computer Company</publisher>
<info name="serial" value="VB-1200"/>
<part name="cart" interface="vidbrain_cart">
<feature name="slot" value="infomanager" />
<dataarea name="rom" size="0x1800">
<rom name="vb1200a_1000-17ff_9_25_78.bin" size="0x800" crc="7fc58830" sha1="39c2821f73c86c3e368fe5429628672cfe594306" offset="0x0000" />
<rom name="vb1200c_3000-37ff_9_25_78.bin" size="0x800" crc="e5d18447" sha1="d98b94ae1cce2ce6e6ae933180a7bf001b73932f" offset="0x0800" />
<rom name="vb-1200_3800-3fff_9_26_78.bin" size="0x800" crc="df9d9437" sha1="3a38a889b552acaa1a284e2ca7447f142b494737" offset="0x1000" />
<rom name="vb1200a_1000-17ff_9_25_78.bin" offset="0x0000" size="0x800" crc="7fc58830" sha1="39c2821f73c86c3e368fe5429628672cfe594306" />
<rom name="vb1200c_3000-37ff_9_25_78.bin" offset="0x0800" size="0x800" crc="e5d18447" sha1="d98b94ae1cce2ce6e6ae933180a7bf001b73932f" />
<rom name="vb-1200_3800-3fff_9_26_78.bin" offset="0x1000" size="0x800" crc="df9d9437" sha1="3a38a889b552acaa1a284e2ca7447f142b494737" />
</dataarea>
<dataarea name="ram" size="0x800"/>
</part>
</software>
<!-- Demonstration Series -->
<!-- Other (yellow) -->
<software name="demo">
<description>Demonstration</description>
@ -247,8 +268,9 @@ license:CC0-1.0
<info name="serial" value="ST01"/>
<part name="cart" interface="vidbrain_cart">
<dataarea name="rom" size="0x1000">
<rom name="demonstration (197x)(videobrain computer company)(videobrain)(cart)[st01].bin" size="0x1000" crc="a59eb765" sha1="ca8f8d2088477b901d5e7f04a1b6c6b71494eec3" offset="0" />
<rom name="demonstration-st01.bin" size="0x1000" crc="a59eb765" sha1="ca8f8d2088477b901d5e7f04a1b6c6b71494eec3" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -37,7 +37,7 @@ device_videobrain_expansion_card_interface::device_videobrain_expansion_card_int
//-------------------------------------------------
// videobrain_roml_pointer - get low ROM pointer
// videobrain_rom_pointer - get ROM pointer
//-------------------------------------------------
uint8_t* device_videobrain_expansion_card_interface::videobrain_rom_pointer(running_machine &machine, size_t size)
@ -45,7 +45,6 @@ uint8_t* device_videobrain_expansion_card_interface::videobrain_rom_pointer(runn
if (m_rom.empty())
{
m_rom.resize(size);
m_rom_mask = size - 1;
}
@ -62,7 +61,6 @@ uint8_t* device_videobrain_expansion_card_interface::videobrain_ram_pointer(runn
if (m_ram.empty())
{
m_ram.resize(size);
m_ram_mask = size - 1;
}

View File

@ -89,8 +89,8 @@ class videobrain_expansion_slot_device : public device_t,
public:
// construction/destruction
template <typename T>
videobrain_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, char const* dflt)
: videobrain_expansion_slot_device(mconfig, tag, owner, 0)
videobrain_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, char const* dflt) :
videobrain_expansion_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
@ -109,8 +109,8 @@ public:
void cs1_w(offs_t offset, uint8_t data) { bo_w(offset + 0x1000, data, 0, 1); }
uint8_t cs2_r(offs_t offset) { return bo_r(offset + 0x1800, 1, 0); }
void cs2_w(offs_t offset, uint8_t data) { bo_w(offset + 0x1800, data, 1, 0); }
uint8_t unmap_r(offs_t offset) { return bo_r(offset + 0x3000, 1, 0); }
void unmap_w(offs_t offset, uint8_t data) { bo_w(offset + 0x3000, data, 1, 0); }
uint8_t unmap_r(offs_t offset) { return bo_r(offset + 0x3000, 1, 1); }
void unmap_w(offs_t offset, uint8_t data) { bo_w(offset + 0x3000, data, 1, 1); }
// cartridge interface
void extres_w(int state) { m_write_extres(state); }

View File

@ -51,11 +51,7 @@ uint8_t videobrain_standard_cartridge_device::videobrain_bo_r(offs_t offset, int
{
uint8_t data = 0;
if (!cs1)
{
data = m_rom[offset & m_rom_mask];
}
else if (!cs2)
if (!cs1 || !cs2)
{
data = m_rom[offset & m_rom_mask];
}

View File

@ -132,7 +132,6 @@ private:
void txvram_w(offs_t offset, u8 data);
void master_irq_ack_w(int state);
void slave_irq_ack_w(int state);
void vblank_irq_w(int state);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
@ -501,15 +500,6 @@ void flower_state::slave_irq_ack_w(int state)
m_slavecpu->set_input_line(0, CLEAR_LINE);
}
void flower_state::vblank_irq_w(int state)
{
if (state)
{
m_mastercpu->set_input_line(0, ASSERT_LINE);
m_slavecpu->set_input_line(0, ASSERT_LINE);
}
}
void flower_state::flower(machine_config &config)
{
@ -537,7 +527,8 @@ void flower_state::flower(machine_config &config)
m_screen->set_screen_update(FUNC(flower_state::screen_update));
m_screen->set_raw(MASTER_CLOCK / 3, 384, 0, 288, 264, 16, 240); // derived from Galaxian HW, 60.606060
m_screen->set_palette(m_palette);
m_screen->screen_vblank().set(FUNC(flower_state::vblank_irq_w));
m_screen->screen_vblank().set_inputline(m_mastercpu, 0, ASSERT_LINE);
m_screen->screen_vblank().append_inputline(m_slavecpu, 0, ASSERT_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_flower);
PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256);

View File

@ -464,7 +464,8 @@ uint8_t exidy_sound_device::sh6840_r(offs_t offset)
// offsets 2,4,6 read channel 0,1,2 MSBs and latch the LSB
case 2: case 4: case 6:
m_sh6840_LSB_latch = m_sh6840_timer[((offset>>1)-1)].counter.b.l;
if (!machine().side_effects_disabled())
m_sh6840_LSB_latch = m_sh6840_timer[((offset>>1)-1)].counter.b.l;
return m_sh6840_timer[((offset>>1)-1)].counter.b.h;
// offsets 3,5,7 read the LSB latch

View File

@ -9,7 +9,7 @@
#include "emu.h"
#include "uv201.h"
#define VERBOSE (1)
//#define VERBOSE (LOG_GENERAL)
#include "logmacro.h"
//**************************************************************************
@ -333,6 +333,7 @@ uint8_t uv201_device::read(offs_t offset)
data = m_ram[offset];
else
LOG("Unknown VLSI read from %02x!\n", offset);
break;
}
return data;
@ -437,6 +438,7 @@ void uv201_device::write(offs_t offset, uint8_t data)
m_ram[offset] = data;
else
logerror("Unknown VLSI write %02x to %02x!\n", data, offset);
break;
}
}

View File

@ -17,8 +17,7 @@
/*
TODO:
TODO:
- wait states (UV201: 2.9us, memory except RES1: 1.65us)
- interlaced video?
- pinball background colors
@ -28,7 +27,6 @@
- video interrupts
- R-2R ladder DAC
- reset on cartridge unload
- use machine/f3853.h
- joystick scan timer 555
- expander 1 (F3870 CPU, cassette, RS-232)
- expander 2 (modem)
@ -59,13 +57,8 @@ Using the system:
#include "vidbrain.lh"
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define LOG 1
//#define VERBOSE (LOG_GENERAL)
#include "logmacro.h"
@ -94,7 +87,7 @@ void vidbrain_state::keyboard_w(uint8_t data)
*/
if (LOG) logerror("Keyboard %02x\n", data);
LOG("Keyboard %02x\n", data);
m_keylatch = data;
}
@ -155,7 +148,7 @@ void vidbrain_state::sound_w(uint8_t data)
*/
if (LOG) logerror("Sound %02x\n", data);
LOG("Sound %02x\n", data);
// sound clock
int sound_clk = BIT(data, 4);
@ -168,7 +161,7 @@ void vidbrain_state::sound_w(uint8_t data)
m_sound_clk = sound_clk;
// joystick enable
m_joy_enable = BIT(data, 7);
m_joy_enable = !BIT(data, 7);
}
@ -202,7 +195,7 @@ void vidbrain_state::vidbrain_io(address_map &map)
{
map(0x00, 0x00).w(FUNC(vidbrain_state::keyboard_w));
map(0x01, 0x01).rw(FUNC(vidbrain_state::keyboard_r), FUNC(vidbrain_state::sound_w));
map(0x0c, 0x0f).rw(F3853_TAG, FUNC(f3853_device::read), FUNC(f3853_device::write));
map(0x0c, 0x0f).rw(m_smi, FUNC(f3853_device::read), FUNC(f3853_device::write));
}
@ -217,7 +210,7 @@ void vidbrain_state::vidbrain_io(address_map &map)
INPUT_CHANGED_MEMBER( vidbrain_state::trigger_reset )
{
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
}
@ -320,28 +313,20 @@ INPUT_PORTS_END
// DEVICE CONFIGURATION
//**************************************************************************
void vidbrain_state::ext_int_w(int state)
{
if (state)
{
m_smi->ext_int_w(1);
}
}
void vidbrain_state::hblank_w(int state)
{
if (state && m_joy_enable)
{
uint8_t joydata = 0;
if (!BIT(m_keylatch, 0)) joydata = m_joy1_x->read();
if (!BIT(m_keylatch, 1)) joydata = m_joy1_y->read();
if (!BIT(m_keylatch, 2)) joydata = m_joy2_x->read();
if (!BIT(m_keylatch, 3)) joydata = m_joy2_y->read();
if (!BIT(m_keylatch, 4)) joydata = m_joy3_x->read();
if (!BIT(m_keylatch, 5)) joydata = m_joy3_y->read();
if (!BIT(m_keylatch, 6)) joydata = m_joy4_x->read();
if (!BIT(m_keylatch, 7)) joydata = m_joy4_y->read();
if (BIT(m_keylatch, 0)) joydata |= m_joy1_x->read();
if (BIT(m_keylatch, 1)) joydata |= m_joy1_y->read();
if (BIT(m_keylatch, 2)) joydata |= m_joy2_x->read();
if (BIT(m_keylatch, 3)) joydata |= m_joy2_y->read();
if (BIT(m_keylatch, 4)) joydata |= m_joy3_x->read();
if (BIT(m_keylatch, 5)) joydata |= m_joy3_y->read();
if (BIT(m_keylatch, 6)) joydata |= m_joy4_x->read();
if (BIT(m_keylatch, 7)) joydata |= m_joy4_y->read();
// NE555 in monostable mode
// R = 3K9 + 100K linear pot
@ -372,7 +357,6 @@ uint8_t vidbrain_state::memory_read_byte(offs_t offset)
TIMER_CALLBACK_MEMBER(vidbrain_state::joystick_tick)
{
m_uv->ext_int_w(0);
m_smi->ext_int_w(0);
}
@ -411,7 +395,7 @@ void vidbrain_state::vidbrain(machine_config &config)
F8(config, m_maincpu, XTAL(4'000'000)/2);
m_maincpu->set_addrmap(AS_PROGRAM, &vidbrain_state::vidbrain_mem);
m_maincpu->set_addrmap(AS_IO, &vidbrain_state::vidbrain_io);
m_maincpu->set_irq_acknowledge_callback(F3853_TAG, FUNC(f3853_device::int_acknowledge));
m_maincpu->set_irq_acknowledge_callback(m_smi, FUNC(f3853_device::int_acknowledge));
// video hardware
config.set_default_layout(layout_vidbrain);
@ -421,13 +405,13 @@ void vidbrain_state::vidbrain(machine_config &config)
screen.set_raw(3636363, 232, 18, 232, 262, 21, 262);
UV201(config, m_uv, 3636363);
m_uv->set_screen(SCREEN_TAG);
m_uv->ext_int_wr_callback().set(FUNC(vidbrain_state::ext_int_w));
m_uv->ext_int_wr_callback().set(m_smi, FUNC(f3853_device::ext_int_w));
m_uv->hblank_wr_callback().set(FUNC(vidbrain_state::hblank_w));
m_uv->db_rd_callback().set(FUNC(vidbrain_state::memory_read_byte));
// sound hardware
SPEAKER(config, "speaker").front_center();
DAC_2BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.167); // 74ls74.u16 + 120k + 56k
DAC_2BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // 74ls74.u16 + 120k + 56k
// devices
F3853(config, m_smi, XTAL(4'000'000)/2);
@ -455,7 +439,7 @@ void vidbrain_state::vidbrain(machine_config &config)
ROM_START( vidbrain )
ROM_REGION( 0x800, "res1", 0 )
ROM_LOAD( "uvres 1n.d67", 0x000, 0x800, CRC(065fe7c2) SHA1(9776f9b18cd4d7142e58eff45ac5ee4bc1fa5a2a) )
ROM_LOAD( "uvres_1n.d67", 0x000, 0x800, CRC(065fe7c2) SHA1(9776f9b18cd4d7142e58eff45ac5ee4bc1fa5a2a) )
ROM_REGION( 0x800, "res2", 0 )
ROM_LOAD( "resn2.e5", 0x000, 0x800, CRC(1d85d7be) SHA1(26c5a25d1289dedf107fa43aa8dfc14692fd9ee6) )

View File

@ -59,7 +59,6 @@ private:
uint8_t keyboard_r();
void sound_w(uint8_t data);
void ext_int_w(int state);
void hblank_w(int state);
uint8_t memory_read_byte(offs_t offset);
@ -82,7 +81,7 @@ private:
// keyboard state
uint8_t m_keylatch = 0;
int m_joy_enable = 0;
bool m_joy_enable = 0;
// sound state
int m_sound_clk = 0;