diff options
Diffstat (limited to 'src/mame/drivers/horizon.cpp')
-rw-r--r-- | src/mame/drivers/horizon.cpp | 55 |
1 files changed, 40 insertions, 15 deletions
diff --git a/src/mame/drivers/horizon.cpp b/src/mame/drivers/horizon.cpp index c40e693cccd..bf9fc9ee6d0 100644 --- a/src/mame/drivers/horizon.cpp +++ b/src/mame/drivers/horizon.cpp @@ -2,15 +2,18 @@ // copyright-holders:Miodrag Milanovic /*************************************************************************** - NorthStar Horizon +NorthStar Horizon - 07/12/2009 Skeleton driver. +2009-12-07 Skeleton driver. - It appears these machines say nothing until a floppy disk is - succesfully loaded. The memory range EA00-EB40 appears to be - used by devices, particularly the FDC. +http://www.hartetechnologies.com/manuals/Northstar/ - http://www.hartetechnologies.com/manuals/Northstar/ +The tiny bios (only about 200 bytes) initialises nothing, but only loads the +initial sector from the disk and transfers control to it. All the used memory +locations in the EA00-EB40 range are listed in the memory map. It does not +use the IO map, and has no text. + +Without schematics and technical manuals, it is not possible to progress. ****************************************************************************/ @@ -49,12 +52,16 @@ class horizon_state : public driver_device { public: horizon_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, Z80_TAG), - m_usart_l(*this, I8251_L_TAG), - m_usart_r(*this, I8251_L_TAG) - { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, Z80_TAG) + , m_usart_l(*this, I8251_L_TAG) + , m_usart_r(*this, I8251_L_TAG) + { } + + DECLARE_READ8_MEMBER(ff_r); +private: + virtual void machine_reset() override; required_device<cpu_device> m_maincpu; required_device<i8251_device> m_usart_l; required_device<i8251_device> m_usart_r; @@ -71,6 +78,16 @@ public: //------------------------------------------------- static ADDRESS_MAP_START( horizon_mem, AS_PROGRAM, 8, horizon_state ) + AM_RANGE(0x0000, 0xe7ff) AM_RAM + AM_RANGE(0xe800, 0xe9ff) AM_ROM AM_REGION("roms", 0) + AM_RANGE(0xea01, 0xea01) + AM_RANGE(0xea11, 0xea11) + AM_RANGE(0xea21, 0xea21) + AM_RANGE(0xea31, 0xea31) + AM_RANGE(0xeb10, 0xeb17) AM_READ(ff_r) + AM_RANGE(0xeb20, 0xeb20) + AM_RANGE(0xeb35, 0xeb35) + AM_RANGE(0xeb40, 0xeb40) ADDRESS_MAP_END @@ -88,13 +105,21 @@ ADDRESS_MAP_END //************************************************************************** //------------------------------------------------- -// INPUT_PORTS( sage2 ) +// INPUT_PORTS //------------------------------------------------- static INPUT_PORTS_START( horizon ) INPUT_PORTS_END +void horizon_state::machine_reset() +{ + m_maincpu->set_pc(0xe800); +} +READ8_MEMBER( horizon_state::ff_r ) +{ + return 0xff; +} //************************************************************************** // DEVICE CONFIGURATION @@ -198,7 +223,7 @@ MACHINE_CONFIG_END //------------------------------------------------- ROM_START( nshrz ) - ROM_REGION( 0x400, Z80_TAG, 0 ) + ROM_REGION( 0x400, "roms", 0 ) ROM_LOAD( "option.prom", 0x000, 0x400, NO_DUMP ) ROM_END @@ -208,8 +233,8 @@ ROM_END //------------------------------------------------- ROM_START( vector1 ) // This one have different I/O - ROM_REGION( 0x10000, Z80_TAG, ROMREGION_ERASEFF ) - ROM_LOAD( "horizon.bin", 0xe800, 0x0100, CRC(7aafa134) SHA1(bf1552c4818f30473798af4f54e65e1957e0db48)) + ROM_REGION( 0x400, "roms", ROMREGION_ERASEFF ) + ROM_LOAD( "horizon.bin", 0x0000, 0x0100, CRC(7aafa134) SHA1(bf1552c4818f30473798af4f54e65e1957e0db48)) ROM_END |