summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/voyager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/voyager.cpp')
-rw-r--r--src/mame/drivers/voyager.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/mame/drivers/voyager.cpp b/src/mame/drivers/voyager.cpp
index 7e1dbcd6414..02875b7c383 100644
--- a/src/mame/drivers/voyager.cpp
+++ b/src/mame/drivers/voyager.cpp
@@ -28,6 +28,7 @@ TODO: VIA KT133a chipset support, GeForce 2MX video support, lots of things ;-)
#include "cpu/i386/i386.h"
#include "machine/idectrl.h"
#include "machine/lpci.h"
+#include "machine/nvram.h"
#include "machine/pckeybrd.h"
#include "machine/pcshare.h"
#include "video/pc_vga.h"
@@ -52,10 +53,13 @@ public:
private:
std::unique_ptr<uint32_t[]> m_bios_ram;
+ std::unique_ptr<uint8_t[]> m_nvram_data;
uint8_t m_mtxc_config_reg[256];
uint8_t m_piix4_config_reg[4][256];
DECLARE_WRITE32_MEMBER(bios_ram_w);
+ uint8_t nvram_r(offs_t offset);
+ void nvram_w(offs_t offset, uint8_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
@@ -243,6 +247,16 @@ WRITE32_MEMBER(voyager_state::bios_ram_w)
}
}
+uint8_t voyager_state::nvram_r(offs_t offset)
+{
+ return m_nvram_data[offset];
+}
+
+void voyager_state::nvram_w(offs_t offset, uint8_t data)
+{
+ m_nvram_data[offset] = data;
+}
+
void voyager_state::voyager_map(address_map &map)
{
map(0x00000000, 0x0009ffff).ram();
@@ -251,8 +265,7 @@ void voyager_state::voyager_map(address_map &map)
map(0x000c8000, 0x000cffff).noprw();
//map(0x000d0000, 0x000d0003).ram(); // XYLINX - Sincronus serial communication
map(0x000d0008, 0x000d000b).nopw(); // ???
- map(0x000d0800, 0x000d0fff).rom().region("nvram", 0); //
-// map(0x000d0800, 0x000d0fff).ram(); // GAME_CMOS
+ map(0x000d0800, 0x000d0fff).rw(FUNC(voyager_state::nvram_r), FUNC(voyager_state::nvram_w)); // GAME_CMOS
//GRULL map(0x000e0000, 0x000effff).ram();
//GRULL-map(0x000f0000, 0x000fffff).bankr("bank1");
@@ -494,6 +507,8 @@ INPUT_PORTS_END
void voyager_state::machine_start()
{
+ m_nvram_data = std::make_unique<uint8_t[]>(0x800);
+ subdevice<nvram_device>("nvram")->set_base(m_nvram_data.get(), 0x800);
}
void voyager_state::machine_reset()
@@ -518,6 +533,8 @@ void voyager_state::voyager(machine_config &config)
pcibus.set_device(0, FUNC(voyager_state::intel82439tx_pci_r), FUNC(voyager_state::intel82439tx_pci_w));
pcibus.set_device(7, FUNC(voyager_state::intel82371ab_pci_r), FUNC(voyager_state::intel82371ab_pci_w));
+ NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
+
/* video hardware */
pcvideo_trident_vga(config);
@@ -535,10 +552,10 @@ void voyager_state::init_voyager()
// unknown version and cabinet style, but believed to be the deluxe sit-down.
ROM_START( voyager )
- ROM_REGION( 0x40000, "bios", 0 )
+ ROM_REGION32_LE( 0x40000, "bios", 0 )
ROM_LOAD( "stv.u23", 0x000000, 0x040000, CRC(0bed28b6) SHA1(8e7f17af65ca9d17c5c7ddedb2313507d0ea8181) )
- ROM_REGION( 0x8000, "video_bios", 0 ) // incorrect, need GeForce 2MX BIOS for 32MB card
+ ROM_REGION32_LE( 0x8000, "video_bios", 0 ) // incorrect, need GeForce 2MX BIOS for 32MB card
ROM_LOAD16_BYTE( "trident_tgui9680_bios.bin", 0x0000, 0x4000, CRC(1eebde64) BAD_DUMP SHA1(67896a854d43a575037613b3506aea6dae5d6a19) )
ROM_CONTINUE( 0x0001, 0x4000 )
@@ -550,10 +567,10 @@ ROM_END
// upright version 1.002
ROM_START( voyagers )
- ROM_REGION( 0x40000, "bios", 0 )
+ ROM_REGION32_LE( 0x40000, "bios", 0 )
ROM_LOAD( "stv.u23", 0x000000, 0x040000, CRC(0bed28b6) SHA1(8e7f17af65ca9d17c5c7ddedb2313507d0ea8181) )
- ROM_REGION( 0x8000, "video_bios", 0 ) // incorrect, need GeForce 2MX BIOS for 32MB card
+ ROM_REGION32_LE( 0x8000, "video_bios", 0 ) // incorrect, need GeForce 2MX BIOS for 32MB card
ROM_LOAD16_BYTE( "trident_tgui9680_bios.bin", 0x0000, 0x4000, CRC(1eebde64) BAD_DUMP SHA1(67896a854d43a575037613b3506aea6dae5d6a19) )
ROM_CONTINUE( 0x0001, 0x4000 )
@@ -564,10 +581,10 @@ ROM_START( voyagers )
ROM_END
ROM_START( policet2 )
- ROM_REGION( 0x40000, "bios", 0 )
+ ROM_REGION32_LE( 0x40000, "bios", 0 )
ROM_LOAD( "pm29f002t.u22", 0x000000, 0x040000, CRC(eb32ace6) SHA1(1b1eeb07e20822c690d05959077c7ddcc22d1708) )
- ROM_REGION( 0x8000, "video_bios", 0 ) // incorrect, need GeForce 2MX BIOS for 32MB card
+ ROM_REGION32_LE( 0x8000, "video_bios", 0 ) // incorrect, need GeForce 2MX BIOS for 32MB card
ROM_LOAD16_BYTE( "trident_tgui9680_bios.bin", 0x0000, 0x4000, CRC(1eebde64) BAD_DUMP SHA1(67896a854d43a575037613b3506aea6dae5d6a19) )
ROM_CONTINUE( 0x0001, 0x4000 )