mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
New systems marked not working
------------------------------ B16 EX-II [Mike Stedman]
This commit is contained in:
parent
31bec4a4a9
commit
857f41fe05
3 changed files with 90 additions and 31 deletions
|
@ -1,20 +1,47 @@
|
|||
// license:BSD-3-Clause
|
||||
// copyright-holders:Angelo Salese
|
||||
/***************************************************************************
|
||||
// license: BSD-3-Clause
|
||||
// copyright-holders: Angelo Salese
|
||||
// thanks-to: Mike Stedman
|
||||
/**************************************************************************************************
|
||||
|
||||
Hitachi B(asic Master?) 16
|
||||
Hitachi B(asic Master?) 16000 series?
|
||||
|
||||
very preliminary driver by Angelo Salese
|
||||
TODO:
|
||||
- Barely anything is known about the HW
|
||||
- b16ex2: "error message 1101"
|
||||
|
||||
TODO:
|
||||
- Driver is all made up of educated guesses (no documentation available)
|
||||
===================================================================================================
|
||||
|
||||
0xfcc67 after the ROM checksum to zero (bp 0xfc153 -> SI = 0) -> system boots
|
||||
B16 EX-II PCB contents:
|
||||
|
||||
****************************************************************************/
|
||||
TIM uPD8253C-5 @ 16B
|
||||
DMAC uPD8257C-5 @ 18B
|
||||
INTM / INTS 2x uPD8259AC @ 13D / 15D
|
||||
Labelless CRTC, Fujitsu 6845 package
|
||||
FDC is unpopulated on board, should be a 765 coupled with a SED9420C/AC
|
||||
BDC HN65013G025 @ 2A
|
||||
CAL HN6223S @ 12K - Near bus slots
|
||||
CA HN6022B @ 12L /
|
||||
MPX HG61H06R29F @ 9J
|
||||
RAC HN60236 - 81005V @ 9H
|
||||
A HN60230 - 81007V @ 9F
|
||||
PAC HG61H20B12F @ 9D
|
||||
DECO HG61H15B19F @ 11D
|
||||
KAM HN671105AU @ 16A
|
||||
DECI HG61H15B19F @ 2F
|
||||
VAP NEC uPD65030G035 @ 4K
|
||||
GN NEC uPD65021G030 @ 2K
|
||||
4x 32x3 slots, labeled SLOT0 to 3
|
||||
11 Jumpers "SH1"
|
||||
Several connectors scattered across the board
|
||||
Centronics port CN9, Serial port CN8
|
||||
2 empty sockets for CN10 / CN11 (DE-9 options?)
|
||||
|
||||
|
||||
**************************************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/i86/i86.h"
|
||||
#include "cpu/i86/i286.h"
|
||||
#include "machine/am9517a.h"
|
||||
#include "video/mc6845.h"
|
||||
#include "emupal.h"
|
||||
|
@ -26,29 +53,33 @@ namespace {
|
|||
class b16_state : public driver_device
|
||||
{
|
||||
public:
|
||||
b16_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_vram(*this, "vram"),
|
||||
m_mc6845(*this, "crtc"),
|
||||
m_dma8237(*this, "8237dma"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_char_rom(*this, "pcg")
|
||||
b16_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_vram(*this, "vram")
|
||||
, m_mc6845(*this, "crtc")
|
||||
, m_dma8237(*this, "8237dma")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_palette(*this, "palette")
|
||||
, m_char_rom(*this, "pcg")
|
||||
{ }
|
||||
|
||||
void b16(machine_config &config);
|
||||
void b16ex2(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void video_start() override;
|
||||
|
||||
void b16_map(address_map &map);
|
||||
void b16_io(address_map &map);
|
||||
void b16ex2_map(address_map &map);
|
||||
private:
|
||||
uint8_t m_crtc_vreg[0x100]{}, m_crtc_index = 0;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_shared_ptr<uint16_t> m_vram;
|
||||
required_device<mc6845_device> m_mc6845;
|
||||
required_device<am9517a_device> m_dma8237;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_region_ptr<uint8_t> m_char_rom;
|
||||
|
@ -63,9 +94,6 @@ private:
|
|||
void memory_write_byte(offs_t offset, uint8_t data);
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void b16_io(address_map &map);
|
||||
void b16_map(address_map &map);
|
||||
};
|
||||
|
||||
#define mc6845_h_char_total (m_crtc_vreg[0])
|
||||
|
@ -135,6 +163,13 @@ void b16_state::b16_map(address_map &map)
|
|||
map(0xfc000, 0xfffff).rom().region("ipl", 0);
|
||||
}
|
||||
|
||||
void b16_state::b16ex2_map(address_map &map)
|
||||
{
|
||||
b16_state::b16_map(map);
|
||||
map(0x0f8000, 0x0fffff).rom().region("ipl", 0);
|
||||
map(0xff8000, 0xffffff).rom().region("ipl", 0);
|
||||
}
|
||||
|
||||
uint16_t b16_state::vblank_r()
|
||||
{
|
||||
return ioport("SYSTEM")->read();
|
||||
|
@ -270,7 +305,7 @@ void b16_state::memory_write_byte(offs_t offset, uint8_t data)
|
|||
void b16_state::b16(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
I8086(config, m_maincpu, XTAL(14'318'181)/2); //unknown xtal
|
||||
I8086(config, m_maincpu, XTAL(14'318'181)/2); // unknown xtal, should be 8088 for base machine?
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &b16_state::b16_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &b16_state::b16_io);
|
||||
|
||||
|
@ -297,7 +332,15 @@ void b16_state::b16(machine_config &config)
|
|||
// MCFG_PALETTE_INIT_STANDARD(black_and_white) // TODO
|
||||
}
|
||||
|
||||
/* ROM definition */
|
||||
void b16_state::b16ex2(machine_config &config)
|
||||
{
|
||||
b16_state::b16(config);
|
||||
I80286(config.replace(), m_maincpu, XTAL(16'000'000) / 2); // A80286-8 / S
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &b16_state::b16ex2_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &b16_state::b16_io);
|
||||
}
|
||||
|
||||
|
||||
ROM_START( b16 )
|
||||
ROM_REGION16_LE( 0x4000, "ipl", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "ipl.rom", 0x0000, 0x4000, CRC(7c1c93d5) SHA1(2a1e63a689c316ff836f21646166b38714a18e03) )
|
||||
|
@ -305,10 +348,26 @@ ROM_START( b16 )
|
|||
ROM_REGION( 0x4000/2, "pcg", ROMREGION_ERASE00 )
|
||||
ROM_END
|
||||
|
||||
ROM_START( b16ex2 )
|
||||
ROM_REGION16_LE( 0x8000, "ipl", ROMREGION_ERASEFF )
|
||||
// M27128-L
|
||||
ROM_LOAD16_BYTE( "j4c-0072.4b", 0x0001, 0x4000, CRC(7f6e4143) SHA1(afe126639b7161562d93e955c1fc720a93e1596b))
|
||||
// M27128-H
|
||||
ROM_LOAD16_BYTE( "j5c-0072.6b", 0x0000, 0x4000, CRC(5f3c85ca) SHA1(4988d8e1e763268a62f2a86104db4d106babd242))
|
||||
|
||||
ROM_REGION( 0x4000/2, "pcg", ROMREGION_ERASE00 )
|
||||
|
||||
ROM_REGION( 0x40000, "kanji", ROMREGION_ERASE00 )
|
||||
// Both HN62301AP, sockets labeled "KANJI1" and "KANJI2"
|
||||
ROM_LOAD( "7l1.11f", 0x00000, 0x20000, NO_DUMP )
|
||||
ROM_LOAD( "7m1.12f", 0x20000, 0x20000, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
/* Driver */
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
COMP( 1983, b16, 0, 0, b16, b16, b16_state, empty_init, "Hitachi", "B16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
|
||||
// TODO: pinpoint MB SKU for both
|
||||
// Original would be MB-16001, flyer shows a "Basic Master" subtitle
|
||||
COMP( 1982?, b16, 0, 0, b16, b16, b16_state, empty_init, "Hitachi", "B16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
||||
COMP( 1983?, b16ex2, 0, 0, b16ex2, b16, b16_state, empty_init, "Hitachi", "B16 EX-II", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
||||
// B16 EX-III known to exist
|
||||
|
|
|
@ -12,13 +12,12 @@ References:
|
|||
|
||||
TODO:
|
||||
- keyboard break NMI (as per bmjr);
|
||||
- Move keyboard timer logic as 6845 hsync callback;
|
||||
- Cassette relay doesn't work properly, issuing a LOAD won't autostart a load;
|
||||
- Move keyboard timer logic as 6845 hsync callback, fix logic (would key repeat too fast);
|
||||
- Cassette baud rate bump (can switch from 600 to 1200 bauds thru $ffd7);
|
||||
- implement sound as a bus slot device;
|
||||
- implement RAM expansion as bus slots (RAM3 at 0x8000-0xbfff, RAM4 at 0xc000-0xefff);
|
||||
- bml3mk5: BANK REG $ffe8 (applies EMS for the RAM expansion?);
|
||||
- soft reset will hang the machine;
|
||||
- Cassettes requires manual press of play button when issuing a LOAD (verify);
|
||||
- Hitachi MB-S1 support (bumps memory map, adds an extra I/O layer);
|
||||
|
||||
**************************************************************************************************/
|
||||
|
|
|
@ -19709,6 +19709,7 @@ smondial2 // 1989 Mephisto Super Mondial II
|
|||
|
||||
@source:hitachi/b16.cpp
|
||||
b16 //
|
||||
b16ex2 //
|
||||
|
||||
@source:hitachi/bmjr.cpp
|
||||
bmjr //
|
||||
|
|
Loading…
Reference in a new issue