(MESS) replaced mbee64 with mbee128p. Added various notes. (nw)

This commit is contained in:
Robbbert 2015-02-11 15:19:14 +11:00
parent e29a3aee40
commit 034c980daf
5 changed files with 79 additions and 136 deletions

View File

@ -55,11 +55,21 @@
F000-F7FF Video RAM
F800-FFFF PCG RAM (graphics), Colour RAM (banked)
Early machines have 'standard' video (128 hires characters).
Later machines had the option of 'premium' video which
provides thousands of hires characters, enough to simulate
bit-mapped graphics.
Commands to call up built-in roms (depends on the model):
NET - Jump to E000, usually the Telcom communications program.
This rom can be replaced with the Dreamdisk Chip-8 rom.
Note that Telcom 3.21 is 8k, it uses a rombank switch
(by reading port 0A) to swap between the two halves.
Most parts of NET can be called up from Basic, e.g.
NET CLOCK will turn on the clock, NET CLOCKD will remove
the resultant status bar, NET TIME hhmm to set the time, etc.
Further, after doing a NET command, the 80x24 mode becomes
available to Basic. OUT#7 to turn it on, OUT#0 for 64x16.
EDASM - Jump to C000, usually the editor/Assembler package.
@ -100,10 +110,16 @@
crashes due to a bug in z80pio emulation.
- 256tc: Keyboard ROM U60 needs to be dumped.
- 128k: PROM PAL needs to be dumped for the bankswitching.
- 128k: GOLD PAL needs to be dumped for the bankswitching.
- 64k: RED PAL needs to be dumped for the bankswitching.
- Teleterm: keyboard is problematic, and cursor doesn't show.
- Teleterm: keyboard is problematic, and cursor doesn't show. Also, the
schematic shows it using the old-style keyboard, however this
must be wrong since the computer has function keys, which are
only available on the new keyboard.
- Mouse: a few programs support the use of a serial mouse which interfaced
directly to the Z80PIO. However there's little info to be found.
***************************************************************************
@ -190,14 +206,6 @@ static ADDRESS_MAP_START(mbee56_mem, AS_PROGRAM, 8, mbee_state)
AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START(mbee64_mem, AS_PROGRAM, 8, mbee_state)
AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
AM_RANGE(0x1000, 0x7fff) AM_RAMBANK("bankl")
AM_RANGE(0x8000, 0xefff) AM_RAMBANK("bankh")
AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START(mbee256_mem, AS_PROGRAM, 8, mbee_state)
AM_RANGE(0x0000, 0x0fff) AM_READ_BANK("bankr0") AM_WRITE_BANK("bankw0")
AM_RANGE(0x1000, 0x1fff) AM_READ_BANK("bankr1") AM_WRITE_BANK("bankw1")
@ -295,19 +303,6 @@ static ADDRESS_MAP_START(mbee56_io, AS_IO, 8, mbee_state)
AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START(mbee64_io, AS_IO, 8, mbee_state)
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00, 0x03) AM_MIRROR(0x10) AM_DEVREADWRITE("z80pio", z80pio_device, read_alt, write_alt)
AM_RANGE(0x08, 0x08) AM_MIRROR(0x10) AM_READWRITE(mbeeic_08_r, mbeeic_08_w)
AM_RANGE(0x0b, 0x0b) AM_MIRROR(0x10) AM_READWRITE(mbee_0b_r, mbee_0b_w)
AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x10) AM_READWRITE(m6545_status_r, m6545_index_w)
AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x10) AM_READWRITE(m6545_data_r, m6545_data_w)
AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_t, read, write)
AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
AM_RANGE(0x50, 0x57) AM_WRITE(mbee64_50_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START(mbee128_io, AS_IO, 8, mbee_state)
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_UNMAP_HIGH
@ -780,14 +775,7 @@ static MACHINE_CONFIG_DERIVED( mbee56, mbeeic )
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mbee64, mbee56 )
MCFG_CPU_MODIFY( "maincpu" )
MCFG_CPU_PROGRAM_MAP(mbee64_mem)
MCFG_CPU_IO_MAP(mbee64_io)
MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee64)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mbee128, mbeeppc )
static MACHINE_CONFIG_DERIVED( mbee128p, mbeeppc )
MCFG_CPU_MODIFY( "maincpu" )
MCFG_CPU_PROGRAM_MAP(mbee256_mem)
MCFG_CPU_IO_MAP(mbee128_io)
@ -799,7 +787,11 @@ static MACHINE_CONFIG_DERIVED( mbee128, mbeeppc )
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mbee256, mbee128 )
static MACHINE_CONFIG_DERIVED( mbee128, mbee128p )
MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeic)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mbee256, mbee128p )
MCFG_CPU_MODIFY( "maincpu" )
MCFG_CPU_PROGRAM_MAP(mbee256_mem)
MCFG_CPU_IO_MAP(mbee256_io)
@ -1084,16 +1076,19 @@ ROM_START( mbee56 )
ROM_REGION( 0x0800, "colorram", ROMREGION_ERASE00 )
ROM_END
ROM_START( mbee64 ) // CIAB (Computer-In-A-Book)
ROM_REGION(0x10000,"maincpu", ROMREGION_ERASEFF)
ROM_START( mbee128 ) // Standard 128k (CIAB is the same thing with half the ram)
ROM_REGION(0x10000, "rams", ROMREGION_ERASEFF)
ROM_REGION(0x7000,"bootrom", ROMREGION_ERASEFF)
ROM_REGION(0x7000, "roms", ROMREGION_ERASEFF)
ROM_LOAD("bn54.bin", 0x0000, 0x2000, CRC(995c53db) SHA1(46e1a5cfd5795b8cf528bacf9dc79398ff7d64af) )
ROM_REGION(0x2000, "gfx", 0)
ROM_LOAD("charrom.bin", 0x1000, 0x1000, CRC(1f9fcee4) SHA1(e57ac94e03638075dde68a0a8c834a4f84ba47b0) )
ROM_RELOAD( 0x0000, 0x1000 )
ROM_REGION(0x4000, "pals", 0) // undumped; using prom from 256tc for now
ROM_LOAD( "silver.u39", 0x0000, 0x4000, BAD_DUMP CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) )
ROM_REGION( 0x0040, "proms", 0 )
ROM_LOAD( "82s123.ic7", 0x0000, 0x0020, CRC(61b9c16c) SHA1(0ee72377831c21339360c376f7248861d476dc20) )
ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020, 0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) ) /* video switching prom, not needed for emulation purposes */
@ -1102,16 +1097,16 @@ ROM_START( mbee64 ) // CIAB (Computer-In-A-Book)
ROM_REGION( 0x0800, "colorram", ROMREGION_ERASE00 )
ROM_END
ROM_START( mbee128 ) // 128K
ROM_START( mbee128p ) // Premium 128K
ROM_REGION(0x20000, "rams", ROMREGION_ERASEFF)
ROM_REGION(0x8000, "roms", 0) // rom plus optional undumped roms plus dummy area
ROM_SYSTEM_BIOS( 0, "bn60", "Version 2.03" )
ROMX_LOAD("bn60.rom", 0x0000, 0x2000, CRC(ed15d4ee) SHA1(3ea42b63d42b9a4c5402676dee8912ad1f906bda), ROM_BIOS(1) )
ROM_SYSTEM_BIOS( 0, "bn56", "bn56" )
ROMX_LOAD("bn56.rom", 0x0000, 0x2000, CRC(3f76769d) SHA1(cfae2069d739c26fe39f734d9f705a3c965d1e6f), ROM_BIOS(1) )
ROM_SYSTEM_BIOS( 1, "bn59", "Version 2.02" )
ROMX_LOAD("bn59.rom", 0x0000, 0x2000, CRC(97384116) SHA1(87f2c4ab1a1f2964ba4f2bb60e62dc9c163831ba), ROM_BIOS(2) )
ROM_SYSTEM_BIOS( 2, "bn56", "bn56" )
ROMX_LOAD("bn56.rom", 0x0000, 0x2000, CRC(3f76769d) SHA1(cfae2069d739c26fe39f734d9f705a3c965d1e6f), ROM_BIOS(3) )
ROM_SYSTEM_BIOS( 2, "bn60", "Version 2.03" )
ROMX_LOAD("bn60.rom", 0x0000, 0x2000, CRC(ed15d4ee) SHA1(3ea42b63d42b9a4c5402676dee8912ad1f906bda), ROM_BIOS(3) )
ROM_SYSTEM_BIOS( 3, "bn55", "bn55" )
ROMX_LOAD("bn55.rom", 0x0000, 0x2000, CRC(ca2c1073) SHA1(355d90d181de899cc7af892df96305fead9c81b4), ROM_BIOS(4) )
ROM_SYSTEM_BIOS( 4, "bn54", "bn54" )
@ -1119,7 +1114,7 @@ ROM_START( mbee128 ) // 128K
ROM_SYSTEM_BIOS( 5, "hd18", "Hard Disk System" )
ROMX_LOAD("hd18.rom", 0x0000, 0x2000, CRC(ed53ace7) SHA1(534e2e00cc527197c76b3c106b3c9ff7f1328487), ROM_BIOS(6) )
ROM_REGION(0x4000, "proms", 0) // undumped; using prom from 256tc for now
ROM_REGION(0x4000, "pals", 0) // undumped; using prom from 256tc for now
ROM_LOAD( "silver.u39", 0x0000, 0x4000, BAD_DUMP CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) )
ROM_REGION(0x9800, "gfx", 0)
@ -1140,7 +1135,7 @@ ROM_START( mbee256 ) // 256tc
ROM_SYSTEM_BIOS( 1, "1.15", "Version 1.15" )
ROMX_LOAD("256tc_boot_1.15.u38", 0x0000, 0x4000, CRC(1902062d) SHA1(e4a1c0b3f4996e313da0bac0edb6d34e3270723e), ROM_BIOS(2) )
ROM_REGION(0x4000, "proms", 0)
ROM_REGION(0x4000, "pals", 0)
ROM_LOAD( "silver.u39", 0x0000, 0x4000, CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) )
ROM_REGION(0x9800, "gfx", 0)
@ -1169,6 +1164,6 @@ COMP( 1985, mbeepc85s,mbee, 0, mbeepc85, mbee, mbee_state, mbeepc8
COMP( 1986, mbeeppc, mbee, 0, mbeeppc, mbee, mbee_state, mbeeppc, "Applied Technology", "Microbee Premium PC85" , 0 )
COMP( 1986, mbeett, mbee, 0, mbeett, mbee256, mbee_state, mbeett, "Applied Technology", "Microbee Teleterm" , GAME_NOT_WORKING )
COMP( 1986, mbee56, mbee, 0, mbee56, mbee, mbee_state, mbee56, "Applied Technology", "Microbee 56k" , GAME_NOT_WORKING )
COMP( 1986, mbee64, mbee, 0, mbee64, mbee, mbee_state, mbee64, "Applied Technology", "Microbee 64k" , GAME_NOT_WORKING )
COMP( 1986, mbee128, mbee, 0, mbee128, mbee, mbee_state, mbee128, "Applied Technology", "Microbee 128k" , GAME_NOT_WORKING )
COMP( 1986, mbee128, mbee, 0, mbee128, mbee, mbee_state, mbee128, "Applied Technology", "Microbee 128k Standard" , GAME_NOT_WORKING )
COMP( 1986, mbee128p, mbee, 0, mbee128p, mbee, mbee_state, mbee128, "Applied Technology", "Microbee 128k Premium" , GAME_NOT_WORKING )
COMP( 1987, mbee256, mbee, 0, mbee256, mbee256, mbee_state, mbee256, "Applied Technology", "Microbee 256TC" , GAME_NOT_WORKING )

View File

@ -52,14 +52,6 @@ public:
, m_pak(*this, "pak")
, m_telcom(*this, "telcom")
, m_basic(*this, "basic")
, m_bankl(*this, "bankl")
, m_bankh(*this, "bankh")
, m_bank1(*this, "bank1")
, m_bank8l(*this, "bank8l")
, m_bank8h(*this, "bank8h")
, m_bank9(*this, "bank9")
, m_bankfl(*this, "bankfl")
, m_bankfh(*this, "bankfh")
, m_io_x0(*this, "X0")
, m_io_x1(*this, "X1")
, m_io_x2(*this, "X2")
@ -129,7 +121,6 @@ public:
DECLARE_DRIVER_INIT(mbeepc);
DECLARE_DRIVER_INIT(mbeeic);
DECLARE_DRIVER_INIT(mbee128);
DECLARE_DRIVER_INIT(mbee64);
DECLARE_MACHINE_RESET(mbee);
DECLARE_VIDEO_START(mbee);
DECLARE_VIDEO_START(mbeeic);
@ -138,7 +129,6 @@ public:
DECLARE_VIDEO_START(mbeeppc);
DECLARE_PALETTE_INIT(mbeeppc);
DECLARE_MACHINE_RESET(mbee56);
DECLARE_MACHINE_RESET(mbee64);
DECLARE_MACHINE_RESET(mbee128);
DECLARE_MACHINE_RESET(mbee256);
DECLARE_MACHINE_RESET(mbeett);
@ -147,8 +137,8 @@ public:
TIMER_CALLBACK_MEMBER(mbee256_kbd);
TIMER_CALLBACK_MEMBER(mbee_rtc_irq);
TIMER_CALLBACK_MEMBER(mbee_reset);
DECLARE_QUICKLOAD_LOAD_MEMBER( mbee );
DECLARE_QUICKLOAD_LOAD_MEMBER( mbee_z80bin );
DECLARE_QUICKLOAD_LOAD_MEMBER(mbee);
DECLARE_QUICKLOAD_LOAD_MEMBER(mbee_z80bin);
WRITE_LINE_MEMBER(fdc_intrq_w);
WRITE_LINE_MEMBER(fdc_drq_w);
UINT8 *m_p_videoram;
@ -169,6 +159,7 @@ public:
required_device<palette_device> m_palette;
private:
bool m_is_premium;
size_t m_size;
UINT8 m_clock_pulse;
UINT8 m_mbee256_key_available;
@ -177,13 +168,12 @@ private:
UINT8 m_mbee256_q_pos;
UINT8 m_0a;
UINT8 m_0b;
UINT8 m_is_premium;
UINT8 m_sy6545_status;
UINT8 m_sy6545_reg[32];
UINT8 m_sy6545_ind;
UINT8 m_fdc_rq;
UINT8 m_bank_array[33];
void mbee256_setup_banks(UINT8 data, bool first_time);
void setup_banks(UINT8 data, bool first_time, UINT8 b_mask);
void sy6545_cursor_configure();
void keyboard_matrix_r(int offs);
void machine_reset_common_disk();
@ -204,14 +194,6 @@ private:
optional_memory_bank m_pak;
optional_memory_bank m_telcom;
optional_memory_bank m_basic;
optional_memory_bank m_bankl;
optional_memory_bank m_bankh;
optional_memory_bank m_bank1;
optional_memory_bank m_bank8l;
optional_memory_bank m_bank8h;
optional_memory_bank m_bank9;
optional_memory_bank m_bankfl;
optional_memory_bank m_bankfh;
required_ioport m_io_x0;
required_ioport m_io_x1;
required_ioport m_io_x2;

View File

@ -272,13 +272,15 @@ TIMER_CALLBACK_MEMBER(mbee_state::mbee_rtc_irq)
and (output = 22,21,20,19,18,17,16,15). The prom is also used to control
the refresh required by the dynamic rams, however we ignore this function.
b_mask = total dynamic ram (1=64k; 3=128k; 7=256k)
************************************************************/
void mbee_state::mbee256_setup_banks(UINT8 data, bool first_time)
void mbee_state::setup_banks(UINT8 data, bool first_time, UINT8 b_mask)
{
// (bits 0-5 are referred to as S0-S5)
data &= 0x3f; // (bits 0-5 are referred to as S0-S5)
address_space &mem = m_maincpu->space(AS_PROGRAM);
UINT8 *prom = memregion("proms")->base();
UINT8 *prom = memregion("pals")->base();
UINT8 b_data = BITSWAP8(data, 7,5,3,2,4,6,1,0) & 0x3b; // arrange data bits to S0,S1,-,S4,S2,S3
UINT8 b_bank, b_byte, b_byte_t, b_addr, p_bank = 1;
UINT16 b_vid;
@ -309,8 +311,16 @@ void mbee_state::mbee256_setup_banks(UINT8 data, bool first_time)
if (!BIT(b_byte, 4))
{
// select video
mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbeeppc_low_r), this));
mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeppc_high_r), this));
if (m_is_premium)
{
mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbeeppc_low_r), this));
mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeppc_high_r), this));
}
else
{
mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbee_low_r), this));
mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeic_high_r), this));
}
}
else
{
@ -320,7 +330,7 @@ void mbee_state::mbee256_setup_banks(UINT8 data, bool first_time)
if (!BIT(b_byte, 3))
membank(banktag)->set_entry(64 + (b_bank & 3)); // read from rom
else
membank(banktag)->set_entry((b_bank & 7) | ((b_byte & 7) << 3)); // ram
membank(banktag)->set_entry((b_bank & 7) | ((b_byte & b_mask) << 3)); // ram
}
}
p_bank++;
@ -341,8 +351,16 @@ void mbee_state::mbee256_setup_banks(UINT8 data, bool first_time)
if (!BIT(b_byte, 4))
{
// select video
mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbeeppc_low_w), this));
mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeppc_high_w), this));
if (m_is_premium)
{
mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbeeppc_low_w), this));
mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeppc_high_w), this));
}
else
{
mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbee_low_w), this));
mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeic_high_w), this));
}
}
else
{
@ -352,7 +370,7 @@ void mbee_state::mbee256_setup_banks(UINT8 data, bool first_time)
if (!BIT(b_byte, 3))
membank(banktag)->set_entry(64); // write to rom dummy area
else
membank(banktag)->set_entry((b_bank & 7) | ((b_byte & 7) << 3)); // ram
membank(banktag)->set_entry((b_bank & 7) | ((b_byte & b_mask) << 3)); // ram
}
}
p_bank++;
@ -362,7 +380,7 @@ void mbee_state::mbee256_setup_banks(UINT8 data, bool first_time)
WRITE8_MEMBER( mbee_state::mbee256_50_w )
{
mbee256_setup_banks(data & 0x3f, 0);
setup_banks(data, 0, 7);
}
/***********************************************************
@ -380,37 +398,9 @@ WRITE8_MEMBER( mbee_state::mbee256_50_w )
WRITE8_MEMBER( mbee_state::mbee128_50_w )
{
mbee256_setup_banks(data & 0x1f, 0); // S5 not used
setup_banks(data, 0, 3);
}
/***********************************************************
64k Memory Banking
Bit 2 disables ROM, replacing it with RAM.
Due to lack of documentation, it is not possible to know
if other bits are used.
************************************************************/
WRITE8_MEMBER( mbee_state::mbee64_50_w )
{
if BIT(data, 2)
{
m_boot->set_entry(0);
m_bankl->set_entry(0);
m_bankh->set_entry(0);
}
else
{
m_bankl->set_entry(1);
m_bankh->set_entry(1);
}
}
/***********************************************************
ROM Banking on older models
@ -489,18 +479,10 @@ MACHINE_RESET_MEMBER( mbee_state, mbee56 )
timer_set(attotime::from_usec(4), TIMER_MBEE_RESET);
}
MACHINE_RESET_MEMBER( mbee_state, mbee64 )
{
machine_reset_common_disk();
m_boot->set_entry(1);
m_bankl->set_entry(1);
m_bankh->set_entry(1);
}
MACHINE_RESET_MEMBER( mbee_state, mbee128 )
{
machine_reset_common_disk();
mbee256_setup_banks(0, 1); // set banks to default
setup_banks(0, 1, 3); // set banks to default
m_maincpu->set_pc(0x8000);
}
@ -510,7 +492,7 @@ MACHINE_RESET_MEMBER( mbee_state, mbee256 )
for (i = 0; i < 15; i++) m_mbee256_was_pressed[i] = 0;
m_mbee256_q_pos = 0;
machine_reset_common_disk();
mbee256_setup_banks(0, 1); // set banks to default
setup_banks(0, 1, 7); // set banks to default
m_maincpu->set_pc(0x8000);
}
@ -625,21 +607,6 @@ DRIVER_INIT_MEMBER( mbee_state, mbee56 )
m_size = 0xe000;
}
DRIVER_INIT_MEMBER( mbee_state, mbee64 )
{
UINT8 *RAM = memregion("maincpu")->base();
m_boot->configure_entry(0, &RAM[0x0000]);
m_bankl->configure_entry(0, &RAM[0x1000]);
m_bankl->configure_entry(1, &RAM[0x9000]);
m_bankh->configure_entry(0, &RAM[0x8000]);
RAM = memregion("bootrom")->base();
m_bankh->configure_entry(1, &RAM[0x0000]);
m_boot->configure_entry(1, &RAM[0x0000]);
m_size = 0xf000;
}
DRIVER_INIT_MEMBER( mbee_state, mbee128 )
{
UINT8 *RAM = memregion("rams")->base();
@ -656,8 +623,7 @@ DRIVER_INIT_MEMBER( mbee_state, mbee128 )
membank(banktag)->configure_entries(0, 32, &RAM[0x0000], 0x1000); // RAM banks
membank(banktag)->configure_entries(64, 1, &ROM[0x4000], 0x1000); // dummy rom
}
m_size = 0x8000;
m_size = 0xf000;
}
DRIVER_INIT_MEMBER( mbee_state, mbee256 )

View File

@ -1216,8 +1216,8 @@ mbeepc85s // Microbee 32 PC85 (Swedish)
mbeeppc // Microbee 32 PPC85
mbeett // Microbee Teleterm
mbee56 // Microbee 56K (CP/M)
mbee64 // Microbee 64K (CP/M)
mbee128 // Microbee 128K (CP/M)
mbee128 // Microbee 128K standard (CP/M)
mbee128p // Microbee 128K premium (CP/M)
mbee256 // Microbee 256TC (CP/M)
// Tandy / Radio Shack

View File

@ -346,8 +346,8 @@ WRITE8_MEMBER ( mbee_state::m6545_data_w )
memcpy(m_p_gfxram, memregion("gfx")->base() + (((data & 0x30) == 0x20) << 11), 0x800);
break;
case 31:
/* This firstly pushes the contents of the transparent registers onto the MA lines,
then increments the address, then sets update strobe on. */
/* This firstly pushes the contents of the transparent registers onto the MA lines,
then increments the address, then sets update strobe on. */
addr = (m_sy6545_reg[18] << 8) | m_sy6545_reg[19];
keyboard_matrix_r(addr);
m_sy6545_reg[19]++;