Previous 199869 Revisions Next

r34960 Wednesday 11th February, 2015 at 04:19:14 UTC by Robbbert
(MESS) replaced mbee64 with mbee128p. Added various notes. (nw)
[src/mess]mess.lst
[src/mess/drivers]mbee.c
[src/mess/includes]mbee.h
[src/mess/machine]mbee.c
[src/mess/video]mbee.c

trunk/src/mess/drivers/mbee.c
r243471r243472
5555        F000-F7FF Video RAM
5656        F800-FFFF PCG RAM (graphics), Colour RAM (banked)
5757
58    Early machines have 'standard' video (128 hires characters).
59    Later machines had the option of 'premium' video which
60    provides thousands of hires characters, enough to simulate
61    bit-mapped graphics.
62
5863    Commands to call up built-in roms (depends on the model):
5964    NET - Jump to E000, usually the Telcom communications program.
6065          This rom can be replaced with the Dreamdisk Chip-8 rom.
6166        Note that Telcom 3.21 is 8k, it uses a rombank switch
6267        (by reading port 0A) to swap between the two halves.
68        Most parts of NET can be called up from Basic, e.g.
69        NET CLOCK will turn on the clock, NET CLOCKD will remove
70        the resultant status bar, NET TIME hhmm to set the time, etc.
71        Further, after doing a NET command, the 80x24 mode becomes
72        available to Basic. OUT#7 to turn it on, OUT#0 for 64x16.
6373
6474    EDASM - Jump to C000, usually the editor/Assembler package.
6575
r243471r243472
100110      crashes due to a bug in z80pio emulation.
101111   
102112    - 256tc: Keyboard ROM U60 needs to be dumped.
103    - 128k: PROM PAL needs to be dumped for the bankswitching.
113    - 128k: GOLD PAL needs to be dumped for the bankswitching.
114    - 64k: RED PAL needs to be dumped for the bankswitching.
104115
105    - Teleterm: keyboard is problematic, and cursor doesn't show.
116    - Teleterm: keyboard is problematic, and cursor doesn't show. Also, the
117                schematic shows it using the old-style keyboard, however this
118                must be wrong since the computer has function keys, which are
119                only available on the new keyboard.
106120
121    - Mouse: a few programs support the use of a serial mouse which interfaced
122             directly to the Z80PIO. However there's little info to be found.
107123
108124***************************************************************************
109125
r243471r243472
190206   AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
191207ADDRESS_MAP_END
192208
193static ADDRESS_MAP_START(mbee64_mem, AS_PROGRAM, 8, mbee_state)
194   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
195   AM_RANGE(0x1000, 0x7fff) AM_RAMBANK("bankl")
196   AM_RANGE(0x8000, 0xefff) AM_RAMBANK("bankh")
197   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
198   AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
199ADDRESS_MAP_END
200
201209static ADDRESS_MAP_START(mbee256_mem, AS_PROGRAM, 8, mbee_state)
202210   AM_RANGE(0x0000, 0x0fff) AM_READ_BANK("bankr0") AM_WRITE_BANK("bankw0")
203211   AM_RANGE(0x1000, 0x1fff) AM_READ_BANK("bankr1") AM_WRITE_BANK("bankw1")
r243471r243472
295303   AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
296304ADDRESS_MAP_END
297305
298static ADDRESS_MAP_START(mbee64_io, AS_IO, 8, mbee_state)
299   ADDRESS_MAP_GLOBAL_MASK(0xff)
300   ADDRESS_MAP_UNMAP_HIGH
301   AM_RANGE(0x00, 0x03) AM_MIRROR(0x10) AM_DEVREADWRITE("z80pio", z80pio_device, read_alt, write_alt)
302   AM_RANGE(0x08, 0x08) AM_MIRROR(0x10) AM_READWRITE(mbeeic_08_r, mbeeic_08_w)
303   AM_RANGE(0x0b, 0x0b) AM_MIRROR(0x10) AM_READWRITE(mbee_0b_r, mbee_0b_w)
304   AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x10) AM_READWRITE(m6545_status_r, m6545_index_w)
305   AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x10) AM_READWRITE(m6545_data_r, m6545_data_w)
306   AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_t, read, write)
307   AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
308   AM_RANGE(0x50, 0x57) AM_WRITE(mbee64_50_w)
309ADDRESS_MAP_END
310
311306static ADDRESS_MAP_START(mbee128_io, AS_IO, 8, mbee_state)
312307   ADDRESS_MAP_GLOBAL_MASK(0xff)
313308   ADDRESS_MAP_UNMAP_HIGH
r243471r243472
780775   MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats)
781776MACHINE_CONFIG_END
782777
783static MACHINE_CONFIG_DERIVED( mbee64, mbee56 )
778static MACHINE_CONFIG_DERIVED( mbee128p, mbeeppc )
784779   MCFG_CPU_MODIFY( "maincpu" )
785   MCFG_CPU_PROGRAM_MAP(mbee64_mem)
786   MCFG_CPU_IO_MAP(mbee64_io)
787   MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee64)
788MACHINE_CONFIG_END
789
790static MACHINE_CONFIG_DERIVED( mbee128, mbeeppc )
791   MCFG_CPU_MODIFY( "maincpu" )
792780   MCFG_CPU_PROGRAM_MAP(mbee256_mem)
793781   MCFG_CPU_IO_MAP(mbee128_io)
794782   MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee128)
r243471r243472
799787   MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats)
800788MACHINE_CONFIG_END
801789
802static MACHINE_CONFIG_DERIVED( mbee256, mbee128 )
790static MACHINE_CONFIG_DERIVED( mbee128, mbee128p )
791   MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeic)
792MACHINE_CONFIG_END
793
794static MACHINE_CONFIG_DERIVED( mbee256, mbee128p )
803795   MCFG_CPU_MODIFY( "maincpu" )
804796   MCFG_CPU_PROGRAM_MAP(mbee256_mem)
805797   MCFG_CPU_IO_MAP(mbee256_io)
r243471r243472
10841076   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASE00 )
10851077ROM_END
10861078
1087ROM_START( mbee64 ) // CIAB (Computer-In-A-Book)
1088   ROM_REGION(0x10000,"maincpu", ROMREGION_ERASEFF)
1079ROM_START( mbee128 ) // Standard 128k (CIAB is the same thing with half the ram)
1080   ROM_REGION(0x10000, "rams", ROMREGION_ERASEFF)
10891081
1090   ROM_REGION(0x7000,"bootrom", ROMREGION_ERASEFF)
1082   ROM_REGION(0x7000, "roms", ROMREGION_ERASEFF)
10911083   ROM_LOAD("bn54.bin",              0x0000,  0x2000, CRC(995c53db) SHA1(46e1a5cfd5795b8cf528bacf9dc79398ff7d64af) )
10921084
10931085   ROM_REGION(0x2000, "gfx", 0)
10941086   ROM_LOAD("charrom.bin",           0x1000,  0x1000, CRC(1f9fcee4) SHA1(e57ac94e03638075dde68a0a8c834a4f84ba47b0) )
10951087   ROM_RELOAD( 0x0000, 0x1000 )
10961088
1089   ROM_REGION(0x4000, "pals", 0) // undumped; using prom from 256tc for now
1090   ROM_LOAD( "silver.u39", 0x0000, 0x4000, BAD_DUMP CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) )
1091
10971092   ROM_REGION( 0x0040, "proms", 0 )
10981093   ROM_LOAD( "82s123.ic7",           0x0000,  0x0020, CRC(61b9c16c) SHA1(0ee72377831c21339360c376f7248861d476dc20) )
10991094   ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020,  0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) )   /* video switching prom, not needed for emulation purposes */
r243471r243472
11021097   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASE00 )
11031098ROM_END
11041099
1105ROM_START( mbee128 ) // 128K
1100ROM_START( mbee128p ) // Premium 128K
11061101   ROM_REGION(0x20000, "rams", ROMREGION_ERASEFF)
11071102
11081103   ROM_REGION(0x8000, "roms", 0) // rom plus optional undumped roms plus dummy area
1109   ROM_SYSTEM_BIOS( 0, "bn60", "Version 2.03" )
1110   ROMX_LOAD("bn60.rom",     0x0000, 0x2000, CRC(ed15d4ee) SHA1(3ea42b63d42b9a4c5402676dee8912ad1f906bda), ROM_BIOS(1) )
1104   ROM_SYSTEM_BIOS( 0, "bn56", "bn56" )
1105   ROMX_LOAD("bn56.rom",     0x0000, 0x2000, CRC(3f76769d) SHA1(cfae2069d739c26fe39f734d9f705a3c965d1e6f), ROM_BIOS(1) )
11111106   ROM_SYSTEM_BIOS( 1, "bn59", "Version 2.02" )
11121107   ROMX_LOAD("bn59.rom",     0x0000, 0x2000, CRC(97384116) SHA1(87f2c4ab1a1f2964ba4f2bb60e62dc9c163831ba), ROM_BIOS(2) )
1113   ROM_SYSTEM_BIOS( 2, "bn56", "bn56" )
1114   ROMX_LOAD("bn56.rom",     0x0000, 0x2000, CRC(3f76769d) SHA1(cfae2069d739c26fe39f734d9f705a3c965d1e6f), ROM_BIOS(3) )
1108   ROM_SYSTEM_BIOS( 2, "bn60", "Version 2.03" )
1109   ROMX_LOAD("bn60.rom",     0x0000, 0x2000, CRC(ed15d4ee) SHA1(3ea42b63d42b9a4c5402676dee8912ad1f906bda), ROM_BIOS(3) )
11151110   ROM_SYSTEM_BIOS( 3, "bn55", "bn55" )
11161111   ROMX_LOAD("bn55.rom",     0x0000, 0x2000, CRC(ca2c1073) SHA1(355d90d181de899cc7af892df96305fead9c81b4), ROM_BIOS(4) )
11171112   ROM_SYSTEM_BIOS( 4, "bn54", "bn54" )
r243471r243472
11191114   ROM_SYSTEM_BIOS( 5, "hd18", "Hard Disk System" )
11201115   ROMX_LOAD("hd18.rom",     0x0000, 0x2000, CRC(ed53ace7) SHA1(534e2e00cc527197c76b3c106b3c9ff7f1328487), ROM_BIOS(6) )
11211116
1122   ROM_REGION(0x4000, "proms", 0) // undumped; using prom from 256tc for now
1117   ROM_REGION(0x4000, "pals", 0) // undumped; using prom from 256tc for now
11231118   ROM_LOAD( "silver.u39", 0x0000, 0x4000, BAD_DUMP CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) )
11241119
11251120   ROM_REGION(0x9800, "gfx", 0)
r243471r243472
11401135   ROM_SYSTEM_BIOS( 1, "1.15", "Version 1.15" )
11411136   ROMX_LOAD("256tc_boot_1.15.u38", 0x0000, 0x4000, CRC(1902062d) SHA1(e4a1c0b3f4996e313da0bac0edb6d34e3270723e), ROM_BIOS(2) )
11421137
1143   ROM_REGION(0x4000, "proms", 0)
1138   ROM_REGION(0x4000, "pals", 0)
11441139   ROM_LOAD( "silver.u39", 0x0000, 0x4000, CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) )
11451140
11461141   ROM_REGION(0x9800, "gfx", 0)
r243471r243472
11691164COMP( 1986, mbeeppc,  mbee,     0,      mbeeppc,  mbee,     mbee_state,  mbeeppc,    "Applied Technology",  "Microbee Premium PC85" , 0 )
11701165COMP( 1986, mbeett,   mbee,     0,      mbeett,   mbee256,  mbee_state,  mbeett,     "Applied Technology",  "Microbee Teleterm" , GAME_NOT_WORKING )
11711166COMP( 1986, mbee56,   mbee,     0,      mbee56,   mbee,     mbee_state,  mbee56,     "Applied Technology",  "Microbee 56k" , GAME_NOT_WORKING )
1172COMP( 1986, mbee64,   mbee,     0,      mbee64,   mbee,     mbee_state,  mbee64,     "Applied Technology",  "Microbee 64k" , GAME_NOT_WORKING )
1173COMP( 1986, mbee128,  mbee,     0,      mbee128,  mbee,     mbee_state,  mbee128,    "Applied Technology",  "Microbee 128k" , GAME_NOT_WORKING )
1167COMP( 1986, mbee128,  mbee,     0,      mbee128,  mbee,     mbee_state,  mbee128,    "Applied Technology",  "Microbee 128k Standard" , GAME_NOT_WORKING )
1168COMP( 1986, mbee128p, mbee,     0,      mbee128p, mbee,     mbee_state,  mbee128,    "Applied Technology",  "Microbee 128k Premium" , GAME_NOT_WORKING )
11741169COMP( 1987, mbee256,  mbee,     0,      mbee256,  mbee256,  mbee_state,  mbee256,    "Applied Technology",  "Microbee 256TC" , GAME_NOT_WORKING )
trunk/src/mess/includes/mbee.h
r243471r243472
5252      , m_pak(*this, "pak")
5353      , m_telcom(*this, "telcom")
5454      , m_basic(*this, "basic")
55      , m_bankl(*this, "bankl")
56      , m_bankh(*this, "bankh")
57      , m_bank1(*this, "bank1")
58      , m_bank8l(*this, "bank8l")
59      , m_bank8h(*this, "bank8h")
60      , m_bank9(*this, "bank9")
61      , m_bankfl(*this, "bankfl")
62      , m_bankfh(*this, "bankfh")
6355      , m_io_x0(*this, "X0")
6456      , m_io_x1(*this, "X1")
6557      , m_io_x2(*this, "X2")
r243471r243472
129121   DECLARE_DRIVER_INIT(mbeepc);
130122   DECLARE_DRIVER_INIT(mbeeic);
131123   DECLARE_DRIVER_INIT(mbee128);
132   DECLARE_DRIVER_INIT(mbee64);
133124   DECLARE_MACHINE_RESET(mbee);
134125   DECLARE_VIDEO_START(mbee);
135126   DECLARE_VIDEO_START(mbeeic);
r243471r243472
138129   DECLARE_VIDEO_START(mbeeppc);
139130   DECLARE_PALETTE_INIT(mbeeppc);
140131   DECLARE_MACHINE_RESET(mbee56);
141   DECLARE_MACHINE_RESET(mbee64);
142132   DECLARE_MACHINE_RESET(mbee128);
143133   DECLARE_MACHINE_RESET(mbee256);
144134   DECLARE_MACHINE_RESET(mbeett);
r243471r243472
147137   TIMER_CALLBACK_MEMBER(mbee256_kbd);
148138   TIMER_CALLBACK_MEMBER(mbee_rtc_irq);
149139   TIMER_CALLBACK_MEMBER(mbee_reset);
150   DECLARE_QUICKLOAD_LOAD_MEMBER( mbee );
151   DECLARE_QUICKLOAD_LOAD_MEMBER( mbee_z80bin );
140   DECLARE_QUICKLOAD_LOAD_MEMBER(mbee);
141   DECLARE_QUICKLOAD_LOAD_MEMBER(mbee_z80bin);
152142   WRITE_LINE_MEMBER(fdc_intrq_w);
153143   WRITE_LINE_MEMBER(fdc_drq_w);
154144   UINT8 *m_p_videoram;
r243471r243472
169159
170160   required_device<palette_device> m_palette;
171161private:
162   bool m_is_premium;
172163   size_t m_size;
173164   UINT8 m_clock_pulse;
174165   UINT8 m_mbee256_key_available;
r243471r243472
177168   UINT8 m_mbee256_q_pos;
178169   UINT8 m_0a;
179170   UINT8 m_0b;
180   UINT8 m_is_premium;
181171   UINT8 m_sy6545_status;
182172   UINT8 m_sy6545_reg[32];
183173   UINT8 m_sy6545_ind;
184174   UINT8 m_fdc_rq;
185175   UINT8 m_bank_array[33];
186   void mbee256_setup_banks(UINT8 data, bool first_time);
176   void setup_banks(UINT8 data, bool first_time, UINT8 b_mask);
187177   void sy6545_cursor_configure();
188178   void keyboard_matrix_r(int offs);
189179   void machine_reset_common_disk();
r243471r243472
204194   optional_memory_bank m_pak;
205195   optional_memory_bank m_telcom;
206196   optional_memory_bank m_basic;
207   optional_memory_bank m_bankl;
208   optional_memory_bank m_bankh;
209   optional_memory_bank m_bank1;
210   optional_memory_bank m_bank8l;
211   optional_memory_bank m_bank8h;
212   optional_memory_bank m_bank9;
213   optional_memory_bank m_bankfl;
214   optional_memory_bank m_bankfh;
215197   required_ioport m_io_x0;
216198   required_ioport m_io_x1;
217199   required_ioport m_io_x2;
trunk/src/mess/machine/mbee.c
r243471r243472
272272    and (output = 22,21,20,19,18,17,16,15). The prom is also used to control
273273    the refresh required by the dynamic rams, however we ignore this function.
274274
275    b_mask = total dynamic ram (1=64k; 3=128k; 7=256k)
276
275277************************************************************/
276278
277void mbee_state::mbee256_setup_banks(UINT8 data, bool first_time)
279void mbee_state::setup_banks(UINT8 data, bool first_time, UINT8 b_mask)
278280{
279   // (bits 0-5 are referred to as S0-S5)
281   data &= 0x3f; // (bits 0-5 are referred to as S0-S5)
280282   address_space &mem = m_maincpu->space(AS_PROGRAM);
281   UINT8 *prom = memregion("proms")->base();
283   UINT8 *prom = memregion("pals")->base();
282284   UINT8 b_data = BITSWAP8(data, 7,5,3,2,4,6,1,0) & 0x3b; // arrange data bits to S0,S1,-,S4,S2,S3
283285   UINT8 b_bank, b_byte, b_byte_t, b_addr, p_bank = 1;
284286   UINT16 b_vid;
r243471r243472
309311            if (!BIT(b_byte, 4))
310312            {
311313               // select video
312               mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbeeppc_low_r), this));
313               mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeppc_high_r), this));
314               if (m_is_premium)
315               {
316                  mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbeeppc_low_r), this));
317                  mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeppc_high_r), this));
318               }
319               else
320               {
321                  mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbee_low_r), this));
322                  mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeic_high_r), this));
323               }
314324            }
315325            else
316326            {
r243471r243472
320330               if (!BIT(b_byte, 3))
321331                  membank(banktag)->set_entry(64 + (b_bank & 3)); // read from rom
322332               else
323                  membank(banktag)->set_entry((b_bank & 7) | ((b_byte & 7) << 3)); // ram
333                  membank(banktag)->set_entry((b_bank & 7) | ((b_byte & b_mask) << 3)); // ram
324334            }
325335         }
326336         p_bank++;
r243471r243472
341351            if (!BIT(b_byte, 4))
342352            {
343353               // select video
344               mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbeeppc_low_w), this));
345               mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeppc_high_w), this));
354               if (m_is_premium)
355               {
356                  mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbeeppc_low_w), this));
357                  mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeppc_high_w), this));
358               }
359               else
360               {
361                  mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbee_low_w), this));
362                  mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeic_high_w), this));
363               }
346364            }
347365            else
348366            {
r243471r243472
352370               if (!BIT(b_byte, 3))
353371                  membank(banktag)->set_entry(64); // write to rom dummy area
354372               else
355                  membank(banktag)->set_entry((b_bank & 7) | ((b_byte & 7) << 3)); // ram
373                  membank(banktag)->set_entry((b_bank & 7) | ((b_byte & b_mask) << 3)); // ram
356374            }
357375         }
358376         p_bank++;
r243471r243472
362380
363381WRITE8_MEMBER( mbee_state::mbee256_50_w )
364382{
365   mbee256_setup_banks(data & 0x3f, 0);
383   setup_banks(data, 0, 7);
366384}
367385
368386/***********************************************************
r243471r243472
380398
381399WRITE8_MEMBER( mbee_state::mbee128_50_w )
382400{
383   mbee256_setup_banks(data & 0x1f, 0); // S5 not used
401   setup_banks(data, 0, 3);
384402}
385403
386
387404/***********************************************************
388405
389    64k Memory Banking
390
391    Bit 2 disables ROM, replacing it with RAM.
392
393    Due to lack of documentation, it is not possible to know
394    if other bits are used.
395
396************************************************************/
397
398WRITE8_MEMBER( mbee_state::mbee64_50_w )
399{
400   if BIT(data, 2)
401   {
402      m_boot->set_entry(0);
403      m_bankl->set_entry(0);
404      m_bankh->set_entry(0);
405   }
406   else
407   {
408      m_bankl->set_entry(1);
409      m_bankh->set_entry(1);
410   }
411}
412
413
414/***********************************************************
415
416406    ROM Banking on older models
417407
418408    Set A to 0 or 1 then read the port to switch between the
r243471r243472
489479   timer_set(attotime::from_usec(4), TIMER_MBEE_RESET);
490480}
491481
492MACHINE_RESET_MEMBER( mbee_state, mbee64 )
493{
494   machine_reset_common_disk();
495   m_boot->set_entry(1);
496   m_bankl->set_entry(1);
497   m_bankh->set_entry(1);
498}
499
500482MACHINE_RESET_MEMBER( mbee_state, mbee128 )
501483{
502484   machine_reset_common_disk();
503   mbee256_setup_banks(0, 1); // set banks to default
485   setup_banks(0, 1, 3); // set banks to default
504486   m_maincpu->set_pc(0x8000);
505487}
506488
r243471r243472
510492   for (i = 0; i < 15; i++) m_mbee256_was_pressed[i] = 0;
511493   m_mbee256_q_pos = 0;
512494   machine_reset_common_disk();
513   mbee256_setup_banks(0, 1); // set banks to default
495   setup_banks(0, 1, 7); // set banks to default
514496   m_maincpu->set_pc(0x8000);
515497}
516498
r243471r243472
625607   m_size = 0xe000;
626608}
627609
628DRIVER_INIT_MEMBER( mbee_state, mbee64 )
629{
630   UINT8 *RAM = memregion("maincpu")->base();
631   m_boot->configure_entry(0, &RAM[0x0000]);
632   m_bankl->configure_entry(0, &RAM[0x1000]);
633   m_bankl->configure_entry(1, &RAM[0x9000]);
634   m_bankh->configure_entry(0, &RAM[0x8000]);
635
636   RAM = memregion("bootrom")->base();
637   m_bankh->configure_entry(1, &RAM[0x0000]);
638   m_boot->configure_entry(1, &RAM[0x0000]);
639
640   m_size = 0xf000;
641}
642
643610DRIVER_INIT_MEMBER( mbee_state, mbee128 )
644611{
645612   UINT8 *RAM = memregion("rams")->base();
r243471r243472
656623      membank(banktag)->configure_entries(0, 32, &RAM[0x0000], 0x1000); // RAM banks
657624      membank(banktag)->configure_entries(64, 1, &ROM[0x4000], 0x1000); // dummy rom
658625   }
659
660   m_size = 0x8000;
626   m_size = 0xf000;
661627}
662628
663629DRIVER_INIT_MEMBER( mbee_state, mbee256 )
trunk/src/mess/mess.lst
r243471r243472
12161216mbeeppc // Microbee 32 PPC85
12171217mbeett  // Microbee Teleterm
12181218mbee56  // Microbee 56K (CP/M)
1219mbee64  // Microbee 64K (CP/M)
1220mbee128 // Microbee 128K (CP/M)
1219mbee128 // Microbee 128K standard (CP/M)
1220mbee128p // Microbee 128K premium (CP/M)
12211221mbee256 // Microbee 256TC (CP/M)
12221222
12231223// Tandy / Radio Shack
trunk/src/mess/video/mbee.c
r243471r243472
346346         memcpy(m_p_gfxram, memregion("gfx")->base() + (((data & 0x30) == 0x20) << 11), 0x800);
347347      break;
348348   case 31:
349            /* This firstly pushes the contents of the transparent registers onto the MA lines,
350            then increments the address, then sets update strobe on. */
349      /* This firstly pushes the contents of the transparent registers onto the MA lines,
350      then increments the address, then sets update strobe on. */
351351      addr = (m_sy6545_reg[18] << 8) | m_sy6545_reg[19];
352352      keyboard_matrix_r(addr);
353353      m_sy6545_reg[19]++;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team