Previous 15994 Revisions Next

r9231 Monday 27th September, 2010 at 00:20:19 UTC by Robbbert
[MBEE] Step 2 of reorganisation
[src/mess/drivers]mbee.c
[src/mess/machine]mbee.c
[src/mess/video]mbee.c

src/mess/machine/mbee.c
r9230r9231
155155/* after the first 4 bytes have been read from ROM, switch the ram back in */
156156static TIMER_CALLBACK( mbee_reset )
157157{
158   memory_set_bank(machine, "bank1", 0);
158   memory_set_bank(machine, "boot", 0);
159159}
160160
161161MACHINE_RESET( mbee )
162162{
163163   timer_set(machine, ATTOTIME_IN_USEC(4), NULL, 0, mbee_reset);
164   memory_set_bank(machine, "bank1", 1);
164   memory_set_bank(machine, "boot", 1);
165165   mbee_z80pio = machine->device("z80pio");
166166   mbee_speaker = machine->device("speaker");
167167   mbee_cassette = machine->device("cassette");
src/mess/video/mbee.c
r9230r9231
146146WRITE8_HANDLER ( mbeeic_0a_w )
147147{
148148   mbee_0a = data;
149   memory_set_bank(space->machine, "bank4", data & 7);
149   memory_set_bank(space->machine, "pak", data & 7);
150150}
151151
152152
r9230r9231
237237WRITE8_HANDLER ( mbee_color_bank_w )
238238{
239239   m6545_color_bank = data;
240   memory_set_bank(space->machine, "bank4", data & 7);
240   memory_set_bank(space->machine, "pak", data & 7);
241241}
242242
243243WRITE8_HANDLER ( mbee_0a_w )
244244{
245245   m6545_color_bank = data;
246   memory_set_bank(space->machine, "bank4", (data&15) >> 1);
246   memory_set_bank(space->machine, "pak", (data&15) >> 1);
247247}
248248
249249READ8_HANDLER ( mbee_netrom_bank_r )
250250{
251251/* Read of port 0A - set Telcom rom to first half */
252   memory_set_bank(space->machine, "bank5", 0);
252   memory_set_bank(space->machine, "telcom", 0);
253253   return m6545_color_bank;
254254}
255255
256256READ8_HANDLER ( mbee_bank_netrom_r )
257257{
258258/* Read of port 10A - set Telcom rom to 2nd half */
259   memory_set_bank(space->machine, "bank5", 1);
259   memory_set_bank(space->machine, "telcom", 1);
260260   return m6545_color_bank;
261261}
262262
r9230r9231
566566{
567567   UINT8 *ram = memory_region(machine, "maincpu");
568568   videoram = memory_region(machine, "videoram");
569   colorram = ram+0x15800;
569   colorram = memory_region(machine, "colorram");
570570   mbee_pcgram = ram+0x11000;
571571}
572572
r9230r9231
633633   UINT8 speed = crt.cursor_top&0x20, flash = crt.cursor_top&0x40;            // cursor modes
634634   UINT16 cursor = (crt.cursor_address_hi<<8) | crt.cursor_address_lo;         // get cursor position
635635   UINT16 screen_home = (crt.screen_address_hi<<8) | crt.screen_address_lo;      // screen home offset (usually zero)
636   UINT16 colourm = (mbee_pcg_color_latch & 0x0e) << 7;
636   UINT16 colourm = (mbee_08 & 0x0e) << 7;
637637
638638   framecnt++;
639639
src/mess/drivers/mbee.c
r9230r9231
9393
9494static ADDRESS_MAP_START(mbee_mem, ADDRESS_SPACE_PROGRAM, 8)
9595   ADDRESS_MAP_UNMAP_HIGH
96   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1")
96   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
9797   AM_RANGE(0x1000, 0x3fff) AM_RAM
9898   AM_RANGE(0x4000, 0x7fff) AM_WRITENOP   /* Needed because quickload to here will crash MESS otherwise */
9999   AM_RANGE(0x8000, 0xefff) AM_ROM
r9230r9231
102102ADDRESS_MAP_END
103103
104104static ADDRESS_MAP_START(mbeeic_mem, ADDRESS_SPACE_PROGRAM, 8)
105   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1")
105   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
106106   AM_RANGE(0x1000, 0x7fff) AM_RAM
107107   AM_RANGE(0x8000, 0xbfff) AM_ROM
108   AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank4")
108   AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("pak")
109109   AM_RANGE(0xe000, 0xefff) AM_ROM
110110   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
111111   AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
112112ADDRESS_MAP_END
113113
114114static ADDRESS_MAP_START(mbeepc_mem, ADDRESS_SPACE_PROGRAM, 8)
115   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1")
115   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
116116   AM_RANGE(0x1000, 0x7fff) AM_RAM
117117   AM_RANGE(0x8000, 0xbfff) AM_ROM
118   AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank4")
119   AM_RANGE(0xe000, 0xefff) AM_ROMBANK("bank5")
118   AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("pak")
119   AM_RANGE(0xe000, 0xefff) AM_ROMBANK("telcom")
120120   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
121121   AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
122122ADDRESS_MAP_END
123123
124124static ADDRESS_MAP_START(mbeepc85_mem, ADDRESS_SPACE_PROGRAM, 8)
125   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1")
125   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
126126   AM_RANGE(0x1000, 0x7fff) AM_RAM
127127   AM_RANGE(0x8000, 0xbfff) AM_ROM
128   AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank4")
129   AM_RANGE(0xe000, 0xefff) AM_ROMBANK("bank5")
128   AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("pak")
129   AM_RANGE(0xe000, 0xefff) AM_ROMBANK("telcom")
130130   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
131131   AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
132132ADDRESS_MAP_END
133133
134134static ADDRESS_MAP_START(mbeeppc_mem, ADDRESS_SPACE_PROGRAM, 8)
135   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1")
135   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
136136   AM_RANGE(0x1000, 0x7fff) AM_RAM
137137   AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank6")
138138   AM_RANGE(0xa000, 0xbfff) AM_ROM
139   AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank4")
140   AM_RANGE(0xe000, 0xefff) AM_ROMBANK("bank5")
139   AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("pak")
140   AM_RANGE(0xe000, 0xefff) AM_ROMBANK("telcom")
141141   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
142142   AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w)
143143ADDRESS_MAP_END
144144
145145static ADDRESS_MAP_START(mbee56_mem, ADDRESS_SPACE_PROGRAM, 8)
146   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1")
146   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
147147   AM_RANGE(0x1000, 0xdfff) AM_RAM
148148   AM_RANGE(0xe000, 0xefff) AM_ROM
149149   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
r9230r9231
151151ADDRESS_MAP_END
152152
153153static ADDRESS_MAP_START(mbee64_mem, ADDRESS_SPACE_PROGRAM, 8)
154   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1")
154   AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
155155   AM_RANGE(0x1000, 0xdfff) AM_RAM
156156   AM_RANGE(0xe000, 0xefff) AM_ROM
157157   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w)
r9230r9231
524524static DRIVER_INIT( mbee )
525525{
526526   UINT8 *RAM = memory_region(machine, "maincpu");
527   memory_configure_bank(machine, "bank1", 0, 2, &RAM[0x0000],  0x8000);
527   memory_configure_bank(machine, "boot", 0, 2, &RAM[0x0000],  0x8000);
528528   mbee_size = 0x4000;
529529}
530530
531531static DRIVER_INIT( mbeeic )
532532{
533533   UINT8 *RAM = memory_region(machine, "maincpu");
534   memory_configure_bank(machine, "bank1", 0, 2, &RAM[0x0000],  0x8000);
535   memory_configure_bank(machine, "bank4", 0, 8, &RAM[0x20000], 0x2000);
536   memory_set_bank(machine, "bank4", 0);
534   memory_configure_bank(machine, "boot", 0, 2, &RAM[0x0000],  0x8000);
535   memory_configure_bank(machine, "pak", 0, 8, &RAM[0x20000], 0x2000);
536   memory_set_bank(machine, "pak", 0);
537537   mbee_size = 0x8000;
538538}
539539
540540static DRIVER_INIT( mbeepc )
541541{
542542   UINT8 *RAM = memory_region(machine, "maincpu");
543   memory_configure_bank(machine, "bank1", 0, 2, &RAM[0x0000],  0x8000);
544   memory_configure_bank(machine, "bank4", 0, 8, &RAM[0x20000], 0x2000);
545   memory_configure_bank(machine, "bank5", 0, 2, &RAM[0x18000], 0x1000);
546   memory_set_bank(machine, "bank4", 0);
547   memory_set_bank(machine, "bank5", 0);
543   memory_configure_bank(machine, "boot", 0, 2, &RAM[0x0000],  0x8000);
544   memory_configure_bank(machine, "pak", 0, 8, &RAM[0x20000], 0x2000);
545   memory_configure_bank(machine, "telcom", 0, 2, &RAM[0x18000], 0x1000);
546   memory_set_bank(machine, "pak", 0);
547   memory_set_bank(machine, "telcom", 0);
548548   mbee_size = 0x8000;
549549}
550550
551551static DRIVER_INIT( mbeepc85 )
552552{
553553   UINT8 *RAM = memory_region(machine, "maincpu");
554   memory_configure_bank(machine, "bank1", 0, 2, &RAM[0x0000],  0x8000);
555   memory_configure_bank(machine, "bank4", 0, 8, &RAM[0x20000], 0x2000);
556   memory_configure_bank(machine, "bank5", 0, 2, &RAM[0x18000], 0x1000);
557   memory_set_bank(machine, "bank4", 5);
558   memory_set_bank(machine, "bank5", 0);
554   memory_configure_bank(machine, "boot", 0, 2, &RAM[0x0000],  0x8000);
555   memory_configure_bank(machine, "pak", 0, 8, &RAM[0x20000], 0x2000);
556   memory_configure_bank(machine, "telcom", 0, 2, &RAM[0x18000], 0x1000);
557   memory_set_bank(machine, "pak", 5);
558   memory_set_bank(machine, "telcom", 0);
559559   mbee_size = 0x8000;
560560}
561561
562562static DRIVER_INIT( mbeeppc )
563563{
564564   UINT8 *RAM = memory_region(machine, "maincpu");
565   memory_configure_bank(machine, "bank1", 0, 2, &RAM[0x0000],  0x30000);
566   memory_configure_bank(machine, "bank4", 0, 8, &RAM[0x20000], 0x2000);
567   memory_configure_bank(machine, "bank5", 0, 2, &RAM[0x18000], 0x1000);
565   memory_configure_bank(machine, "boot", 0, 2, &RAM[0x0000],  0x30000);
566   memory_configure_bank(machine, "pak", 0, 8, &RAM[0x20000], 0x2000);
567   memory_configure_bank(machine, "telcom", 0, 2, &RAM[0x18000], 0x1000);
568568   memory_configure_bank(machine, "bank6", 0, 2, &RAM[0x30000], 0x2000);
569   memory_set_bank(machine, "bank4", 5);
570   memory_set_bank(machine, "bank5", 0);
569   memory_set_bank(machine, "pak", 5);
570   memory_set_bank(machine, "telcom", 0);
571571   memory_set_bank(machine, "bank6", 0);
572572   mbee_size = 0x8000;
573573}
r9230r9231
575575static DRIVER_INIT( mbee56 )
576576{
577577   UINT8 *RAM = memory_region(machine, "maincpu");
578   memory_configure_bank(machine, "bank1", 0, 2, &RAM[0x0000],  0xe000);
578   memory_configure_bank(machine, "boot", 0, 2, &RAM[0x0000],  0xe000);
579579   mbee_size = 0xe000;
580580}
581581
582582static DRIVER_INIT( mbee64 )
583583{
584584   UINT8 *RAM = memory_region(machine, "maincpu");
585   memory_configure_bank(machine, "bank1", 0, 2, &RAM[0x0000],  0xe000);
585   memory_configure_bank(machine, "boot", 0, 2, &RAM[0x0000],  0xe000);
586586   mbee_size = 0xe000;
587587}
588588
r9230r9231
629629   ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020,  0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) )   /* video switching prom, not needed for emulation purposes */
630630
631631   ROM_REGION( 0x0800, "videoram", ROMREGION_ERASEFF )
632   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASEFF )
632633ROM_END
633634
634635ROM_START( mbeepc )
r9230r9231
650651   ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020,  0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) )   /* video switching prom, not needed for emulation purposes */
651652
652653   ROM_REGION( 0x0800, "videoram", ROMREGION_ERASEFF )
654   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASEFF )
653655ROM_END
654656
655657ROM_START( mbeepc85 )
r9230r9231
674676   ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020,  0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) )   /* video switching prom, not needed for emulation purposes */
675677
676678   ROM_REGION( 0x0800, "videoram", ROMREGION_ERASEFF )
679   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASEFF )
677680ROM_END
678681
679682ROM_START( mbeepc85s )
r9230r9231
698701   ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020,  0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) )   /* video switching prom, not needed for emulation purposes */
699702
700703   ROM_REGION( 0x0800, "videoram", ROMREGION_ERASEFF )
704   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASEFF )
701705ROM_END
702706
703707ROM_START( mbeeppc )
r9230r9231
722726   ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020,  0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) )   /* video switching prom, not needed for emulation purposes */
723727
724728   ROM_REGION( 0x1000, "videoram", ROMREGION_ERASEFF )
729   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASEFF )
725730ROM_END
726731
727732ROM_START( mbee56 )
r9230r9231
735740   ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020,  0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) )   /* video switching prom, not needed for emulation purposes */
736741
737742   ROM_REGION( 0x0800, "videoram", ROMREGION_ERASEFF )
743   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASEFF )
738744ROM_END
739745
740746ROM_START( mbee64 )
r9230r9231
748754   ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020,  0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) )   /* video switching prom, not needed for emulation purposes */
749755
750756   ROM_REGION( 0x0800, "videoram", ROMREGION_ERASEFF )
757   ROM_REGION( 0x0800, "colorram", ROMREGION_ERASEFF )
751758ROM_END
752759
753760/***************************************************************************

Previous 15994 Revisions Next


© 1998-2018 The MESS Team