From 034c980daf05c189b4df59529c53385ffb9cf5da Mon Sep 17 00:00:00 2001 From: Robbbert Date: Wed, 11 Feb 2015 15:19:14 +1100 Subject: (MESS) replaced mbee64 with mbee128p. Added various notes. (nw) --- src/mess/drivers/mbee.c | 83 +++++++++++++++++++--------------------- src/mess/includes/mbee.h | 26 ++----------- src/mess/machine/mbee.c | 98 ++++++++++++++++-------------------------------- src/mess/mess.lst | 4 +- src/mess/video/mbee.c | 4 +- 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 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]++; -- cgit v1.2.3