summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <pac0446@bigpond.net.au>2015-02-11 15:19:14 +1100
committer Robbbert <pac0446@bigpond.net.au>2015-02-11 15:19:14 +1100
commit034c980daf05c189b4df59529c53385ffb9cf5da (patch)
tree0f8d2cb2d6472bb1040e8a876005bc09e64fe4fe
parente29a3aee4020163bff95ab4a556b6f874944ffc8 (diff)
(MESS) replaced mbee64 with mbee128p. Added various notes. (nw)
-rw-r--r--src/mess/drivers/mbee.c83
-rw-r--r--src/mess/includes/mbee.h26
-rw-r--r--src/mess/machine/mbee.c98
-rw-r--r--src/mess/mess.lst4
-rw-r--r--src/mess/video/mbee.c4
5 files changed, 79 insertions, 136 deletions
diff --git a/src/mess/drivers/mbee.c b/src/mess/drivers/mbee.c
index 30ccd43fded..bb77aca048a 100644
--- a/src/mess/drivers/mbee.c
+++ b/src/mess/drivers/mbee.c
@@ -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 )
diff --git a/src/mess/includes/mbee.h b/src/mess/includes/mbee.h
index 211412875c2..e2430a960dd 100644
--- a/src/mess/includes/mbee.h
+++ b/src/mess/includes/mbee.h
@@ -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;
diff --git a/src/mess/machine/mbee.c b/src/mess/machine/mbee.c
index 530bc27b788..5453a8ad634 100644
--- a/src/mess/machine/mbee.c
+++ b/src/mess/machine/mbee.c
@@ -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 )
diff --git a/src/mess/mess.lst b/src/mess/mess.lst
index c4e858dd1e5..f819210bc73 100644
--- a/src/mess/mess.lst
+++ b/src/mess/mess.lst
@@ -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
diff --git a/src/mess/video/mbee.c b/src/mess/video/mbee.c
index c1a46682a85..efc0bf4e58b 100644
--- a/src/mess/video/mbee.c
+++ b/src/mess/video/mbee.c
@@ -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]++;