Previous 15994 Revisions Next

r9402 Sunday 17th October, 2010 at 07:39:04 UTC by Robbbert
[MBEE] Disks enabled on all disk bees, ready to go once the fdc is fixed.
[src/mess/drivers]mbee.c
[src/mess/includes]mbee.h
[src/mess/machine]mbee.c

src/mess/machine/mbee.c
r9401r9402
513513   memory_set_bank(machine, "boot", 0);
514514}
515515
516MACHINE_RESET( mbee )
516static void machine_reset_common(running_machine *machine)
517517{
518   timer_set(machine, ATTOTIME_IN_USEC(4), NULL, 0, mbee_reset);
519   memory_set_bank(machine, "boot", 1);
520518   mbee_z80pio = machine->device("z80pio");
521519   mbee_speaker = machine->device("speaker");
522520   mbee_cassette = machine->device("cassette");
523521   mbee_printer = machine->device("centronics");
524   mbee_fdc = machine->device("wd179x");
525   //wd17xx_set_pause_time(mbee_fdc, 45);       /* default is 40 usec if not set */
526   //wd17xx_set_complete_command_delay(mbee_fdc, 50);   /* default is 12 usec if not set */
527522}
528523
524static void machine_reset_common_disk(running_machine *machine)
525{
526   machine_reset_common(machine);
527   mbee_fdc = machine->device("fdc");
528   /* These values need to be fine tuned or the fdc repaired */
529   wd17xx_set_pause_time(mbee_fdc, 45);       /* default is 40 usec if not set */
530   wd17xx_set_complete_command_delay(mbee_fdc, 50);   /* default is 12 usec if not set */
531}
532
533MACHINE_RESET( mbee )
534{
535   machine_reset_common(machine);
536   memory_set_bank(machine, "boot", 1);
537   timer_set(machine, ATTOTIME_IN_USEC(4), NULL, 0, mbee_reset);
538}
539
540MACHINE_RESET( mbee56 )
541{
542   machine_reset_common_disk(machine);
543   memory_set_bank(machine, "boot", 1);
544   timer_set(machine, ATTOTIME_IN_USEC(4), NULL, 0, mbee_reset);
545}
546
529547MACHINE_RESET( mbee64 )
530548{
549   machine_reset_common_disk(machine);
531550   memory_set_bank(machine, "boot", 1);
532551   memory_set_bank(machine, "bankl", 1);
533552   memory_set_bank(machine, "bankh", 1);
534   mbee_z80pio = machine->device("z80pio");
535   mbee_speaker = machine->device("speaker");
536   mbee_cassette = machine->device("cassette");
537   mbee_printer = machine->device("centronics");
538   mbee_fdc = machine->device("wd179x");
539553}
540554
541555MACHINE_RESET( mbee128 )
542556{
543557   address_space *mem = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
544   mbee_z80pio = machine->device("z80pio");
545   mbee_speaker = machine->device("speaker");
546   mbee_cassette = machine->device("cassette");
547   mbee_printer = machine->device("centronics");
548   mbee_fdc = machine->device("wd179x");
558   machine_reset_common_disk(machine);
549559   mbee128_50_w(mem,0,0); // set banks to default
550560   memory_set_bank(machine, "boot", 4); // boot time
551561}
r9401r9402
554564{
555565   UINT8 i;
556566   address_space *mem = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
557   mbee_z80pio = machine->device("z80pio");
558   mbee_speaker = machine->device("speaker");
559   mbee_cassette = machine->device("cassette");
560   mbee_printer = machine->device("centronics");
561   mbee_fdc = machine->device("wd179x");
567   machine_reset_common_disk(machine);
562568   mbee_rtc = machine->device<mc146818_device>("rtc");
563569   for (i = 0; i < 15; i++) mbee256_was_pressed[i] = 0;
564570   mbee256_q_pos = 0;
src/mess/includes/mbee.h
r9401r9402
4646DRIVER_INIT( mbee128 );
4747DRIVER_INIT( mbee256 );
4848MACHINE_RESET( mbee );
49MACHINE_RESET( mbee56 );
4950MACHINE_RESET( mbee64 );
5051MACHINE_RESET( mbee128 );
5152MACHINE_RESET( mbee256 );
src/mess/drivers/mbee.c
r9401r9402
8585    - The Monitor program on 256TC crashes the system. This appears
8686      to be a MAME core bug involving the z80pio.
8787
88    - Disk system doesn't work because of fdc problems.
8889
90
8991***************************************************************************/
9092
9193#include "emu.h"
r9401r9402
245247   AM_RANGE(0x0b, 0x0b) AM_MIRROR(0x10) AM_READWRITE(mbee_0b_r, mbee_0b_w)
246248   AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x10) AM_READWRITE(m6545_status_r, m6545_index_w)
247249   AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x10) AM_READWRITE(m6545_data_r, m6545_data_w)
248   AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("wd179x", wd17xx_r, wd17xx_w)
250   AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd17xx_r, wd17xx_w)
249251   AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
250252ADDRESS_MAP_END
251253
r9401r9402
257259   AM_RANGE(0x0b, 0x0b) AM_MIRROR(0x10) AM_READWRITE(mbee_0b_r, mbee_0b_w)
258260   AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x10) AM_READWRITE(m6545_status_r, m6545_index_w)
259261   AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x10) AM_READWRITE(m6545_data_r, m6545_data_w)
260   AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("wd179x", wd17xx_r, wd17xx_w)
262   AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd17xx_r, wd17xx_w)
261263   AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
262264   AM_RANGE(0x50, 0x57) AM_WRITE(mbee64_50_w)
263265ADDRESS_MAP_END
r9401r9402
271273   AM_RANGE(0x0c, 0x0c) AM_READWRITE(m6545_status_r, m6545_index_w)
272274   AM_RANGE(0x0d, 0x0d) AM_READWRITE(m6545_data_r, m6545_data_w)
273275   AM_RANGE(0x1c, 0x1f) AM_READWRITE(mbeeppc_1c_r,mbee256_1c_w)
274   AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("wd179x", wd17xx_r, wd17xx_w)
276   AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd17xx_r, wd17xx_w)
275277   AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
276278   AM_RANGE(0x50, 0x57) AM_WRITE(mbee128_50_w)
277279ADDRESS_MAP_END
r9401r9402
291293   // AM_RANGE(0x0010, 0x0013) AM_MIRROR(0xff00) Optional SN76489AN audio chip
292294   AM_RANGE(0x0018, 0x001b) AM_MIRROR(0xff00) AM_READ(mbee256_18_r)
293295   AM_RANGE(0x001c, 0x001f) AM_MIRROR(0xff00) AM_READWRITE(mbeeppc_1c_r,mbee256_1c_w)
294   AM_RANGE(0x0044, 0x0047) AM_MIRROR(0xff00) AM_DEVREADWRITE("wd179x", wd17xx_r, wd17xx_w)
296   AM_RANGE(0x0044, 0x0047) AM_MIRROR(0xff00) AM_DEVREADWRITE("fdc", wd17xx_r, wd17xx_w)
295297   AM_RANGE(0x0048, 0x004f) AM_MIRROR(0xff00) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w)
296298   AM_RANGE(0x0050, 0x0057) AM_MIRROR(0xff00) AM_WRITE(mbee256_50_w)
297299   // AM_RANGE(0x0058, 0x005f) AM_MIRROR(0xff00) External options: floppy drive, hard drive and keyboard
r9401r9402
756758   MDRV_CPU_MODIFY( "maincpu" )
757759   MDRV_CPU_PROGRAM_MAP(mbee56_mem)
758760   MDRV_CPU_IO_MAP(mbee56_io)
759   MDRV_WD179X_ADD("wd179x", mbee_wd17xx_interface )
761   MDRV_MACHINE_RESET( mbee56 )
762   MDRV_WD2793_ADD("fdc", mbee_wd17xx_interface )
760763   MDRV_FLOPPY_2_DRIVES_ADD(mbee_floppy_config)
761764MACHINE_CONFIG_END
762765
r9401r9402
772775   MDRV_CPU_PROGRAM_MAP(mbee128_mem)
773776   MDRV_CPU_IO_MAP(mbee128_io)
774777   MDRV_MACHINE_RESET( mbee128 )
775   MDRV_WD179X_ADD("wd179x", mbee_wd17xx_interface )
778   MDRV_WD2793_ADD("fdc", mbee_wd17xx_interface )
776779   MDRV_FLOPPY_2_DRIVES_ADD(mbee_floppy_config)
777780MACHINE_CONFIG_END
778781

Previous 15994 Revisions Next


© 1998-2018 The MESS Team