Previous 15994 Revisions Next

r9441 Sunday 24th October, 2010 at 00:23:13 UTC by R. Belmont
[MAC] Further RBV support & included dumped Egret ROM in machines using it. No functional changes.
[src/mess/drivers]mac.c
[src/mess/machine]mac.c
[src/mess/video]mac.c

src/mess/machine/mac.c
r9440r9441
6262          (IM-III seems to say it does not on Mac 128k, 512k, and 512ke).
6363        - What on earth are 0x700000-0x7fffff mapped to ?
6464
65     Egret version spotting:
66     341S0417 - 0x???? - Color Classic
67     341S0850 - 0x???? - LC, LC II
68     341S0851 - 0x0101 - Classic II, IIvx, LC III (probably also IIvi?)
69     344S0851 - 0x???? - IIsi
70
71     Cuda version spotting:
72     341S0060 - 0x0002 - Performa/Quadra 6xx, PMac 6200, x400, some x500, Pippin, Gossamer G3, others?
73     341S0078 - 0x???? - Quadra 660AV/840AV
74     341S0262 - 0x???? - some PMac 6500
75     341S0285 - 0x???? - PMac 4400 + Mac clones
76     341S0788 - 0x???? - LC 475/575/Quadra 605, PMac 7200
77     343S0788 - 0x???? - PMac x100 (typo - actually 341S0788?)
78
79
6580****************************************************************************/
6681
6782#include <time.h>
r9440r9441
313328
314329   if (ASC_INTS_RBV)
315330   {
316      mac->rbv_regs[3] |= 0x90;   // any VIA 2 interrupt | sound interrupt
331      if (state)
332      {
333         mac->rbv_regs[3] |= 0x90;   // any VIA 2 interrupt | sound interrupt
317334
318      if (mac->rbv_ier & 0x10)   // ASC on RBV is CB1, bit 4 of IER/IFR
335         if (mac->rbv_ier & 0x10)   // ASC on RBV is CB1, bit 4 of IER/IFR
336         {
337            mac->rbv_ifr |= 0x90;
338            mac_set_via2_interrupt(device->machine, 1);
339         }
340      }
341      else
319342      {
320         mac->rbv_ifr |= 0x90;
321         mac_set_via2_interrupt(device->machine, 1);
343         mac->rbv_regs[3] &= ~0x90;
344         mac->rbv_ifr &= ~0x10;
322345      }
323346
324347   }
r9440r9441
26362659      case MODEL_MAC_QUADRA_900:
26372660         return 0x81 | PA6 | PA4;
26382661
2662      case MODEL_MAC_COLOR_CLASSIC:
2663         return 0x81 | PA1;
2664
26392665      default:
26402666         return 0x80;
26412667
src/mess/video/mac.c
r9440r9441
349349   }
350350   else
351351   {
352      mac->rbv_montype = input_port_read(machine, "MONTYPE");
352      mac->rbv_montype = input_port_read_safe(machine, "MONTYPE", 2);
353353      switch (mac->rbv_montype)
354354      {
355355         case 1:   // 15" portrait display
src/mess/drivers/mac.c
r9440r9441
111111         // for portrait display, force monochrome by using the blue channel
112112         if (mac->model != MODEL_MAC_CLASSIC_II)
113113         {
114            if (input_port_read(space->machine, "MONTYPE") == 1)
114            // Color Classic has no MONTYPE so the safe read gets us 512x384, which is right
115            if (input_port_read_safe(space->machine, "MONTYPE", 2) == 1)
115116            {
116117               palette_set_color(space->machine, mac->rbv_clutoffs, MAKE_RGB(mac->rbv_colors[2], mac->rbv_colors[2], mac->rbv_colors[2]));
117118               mac->rbv_palette[mac->rbv_clutoffs] = MAKE_RGB(mac->rbv_colors[2], mac->rbv_colors[2], mac->rbv_colors[2]);
r9440r9441
171172         if (!mac->rbv_immed10wr)
172173         {
173174            data &= ~0x38;
174            data |= (input_port_read(space->machine, "MONTYPE")<<3);
175            data |= (input_port_read_safe(space->machine, "MONTYPE", 2)<<3);
175176         }
176177         else
177178         {
r9440r9441
192193      switch (offset)
193194      {
194195         case 13:   // IFR
196//            printf("Read IER = %02x (PC=%x)\n", mac->rbv_ier, cpu_get_pc(space->cpu));
195197            return mac->rbv_ifr;
196198            break;
197199
198200         case 14:   // IER
201//            printf("Read IFR = %02x (PC=%x)\n", mac->rbv_ifr, cpu_get_pc(space->cpu));
199202            return mac->rbv_ier;
200203            break;
201204
r9440r9441
216219
217220   if (offset < 0x100)
218221   {
219//      if (offset == 0x10) printf("rbv_w: %02x to offset %x (PC=%x)\n", data, offset, cpu_get_pc(space->cpu));
222//      if (offset == 0x10)
223//      printf("rbv_w: %02x to offset %x (PC=%x)\n", data, offset, cpu_get_pc(space->cpu));
220224      switch (offset)
221225      {
222226         case 0x00:
r9440r9441
401405   AM_RANGE(0x50f26000, 0x50f27fff) AM_READWRITE8(mac_rbv_r, mac_rbv_w, 0xffffffff)   // VIA2 (V8)
402406   AM_RANGE(0x50f40000, 0x50fbffff) AM_RAM AM_BASE_MEMBER(mac_state, rbv_vram)
403407ADDRESS_MAP_END
408/*
409static ADDRESS_MAP_START(macclrclassic_map, ADDRESS_SPACE_PROGRAM, 32)
410   AM_RANGE(0x00a00000, 0x00afffff) AM_ROM AM_REGION("bootrom", 0)
411   AM_RANGE(0x40a00000, 0x40afffff) AM_ROM AM_REGION("bootrom", 0)
404412
413   AM_RANGE(0xf00000, 0xf01fff) AM_READWRITE16(mac_via_r, mac_via_w, 0xffffffff)
414   AM_RANGE(0xf04000, 0xf05fff) AM_READWRITE16(mac_scc_r, mac_scc_2_w, 0xffffffff)
415   AM_RANGE(0xf06000, 0xf06003) AM_WRITE(macii_scsi_drq_w) AM_MIRROR(0x00f00000)
416   AM_RANGE(0xf10000, 0xf11fff) AM_READWRITE16(macplus_scsi_r, macii_scsi_w, 0xffffffff) AM_MIRROR(0x00f00000)
417   AM_RANGE(0xf12060, 0xf12063) AM_READ(macii_scsi_drq_r) AM_MIRROR(0x00f00000)
418   AM_RANGE(0xf14000, 0xf15fff) AM_READ8(mac_asc_r, 0xffffffff) AM_WRITE8(mac_asc_w, 0xffffffff)
419   AM_RANGE(0xf16000, 0xf17fff) AM_READWRITE16(mac_iwm_r, mac_iwm_w, 0xffffffff) AM_MIRROR(0x00f00000)
420   AM_RANGE(0xf24000, 0xf24003) AM_READWRITE(rbv_ramdac_r, rbv_ramdac_w)
421   AM_RANGE(0xf26000, 0xf27fff) AM_READWRITE8(mac_rbv_r, mac_rbv_w, 0xffffffff)   // VIA2 (V8)
422
423   AM_RANGE(0x50f00000, 0x50f01fff) AM_READWRITE16(mac_via_r, mac_via_w, 0xffffffff)
424   AM_RANGE(0x50f04000, 0x50f05fff) AM_READWRITE16(mac_scc_r, mac_scc_2_w, 0xffffffff)
425   AM_RANGE(0x50f06000, 0x50f06003) AM_WRITE(macii_scsi_drq_w) AM_MIRROR(0x00f00000)
426   AM_RANGE(0x50f10000, 0x50f11fff) AM_READWRITE16(macplus_scsi_r, macii_scsi_w, 0xffffffff) AM_MIRROR(0x00f00000)
427   AM_RANGE(0x50f12060, 0x50f12063) AM_READ(macii_scsi_drq_r) AM_MIRROR(0x00f00000)
428   AM_RANGE(0x50f14000, 0x50f15fff) AM_READ8(mac_asc_r, 0xffffffff) AM_WRITE8(mac_asc_w, 0xffffffff)
429   AM_RANGE(0x50f16000, 0x50f17fff) AM_READWRITE16(mac_iwm_r, mac_iwm_w, 0xffffffff) AM_MIRROR(0x00f00000)
430   AM_RANGE(0x50f24000, 0x50f24003) AM_READWRITE(rbv_ramdac_r,rbv_ramdac_w)
431   AM_RANGE(0x50f26000, 0x50f27fff) AM_READWRITE8(mac_rbv_r, mac_rbv_w, 0xffffffff)   // VIA2 (V8)
432   AM_RANGE(0x50f40000, 0x50fbffff) AM_RAM AM_BASE_MEMBER(mac_state, rbv_vram)
433ADDRESS_MAP_END
434*/
405435static ADDRESS_MAP_START(maclc3_map, ADDRESS_SPACE_PROGRAM, 32)         
406436   AM_RANGE(0x40000000, 0x400fffff) AM_ROM AM_REGION("bootrom", 0) AM_MIRROR(0x0ff00000)
407437
r9440r9441
738768
739769   MDRV_CPU_REPLACE("maincpu", M68020, 7833600*2)
740770   MDRV_CPU_PROGRAM_MAP(maclc_map)
771   MDRV_CPU_VBLANK_INT("screen", mac_rbv_vbl)
741772
742773   MDRV_PALETTE_LENGTH(256)
743774
r9440r9441
757788
758789   MDRV_CPU_REPLACE("maincpu", M68030, 7833600*2)
759790   MDRV_CPU_PROGRAM_MAP(maclc_map)
791   MDRV_CPU_VBLANK_INT("screen", mac_rbv_vbl)
760792
761793   MDRV_RAM_MODIFY("messram")
762794   MDRV_RAM_DEFAULT_SIZE("4M")
763795   MDRV_RAM_EXTRA_OPTIONS("6M,8M,10M")
764796MACHINE_CONFIG_END
797/*
798static MACHINE_CONFIG_DERIVED( maccclas, maclc2 )
765799
800   MDRV_CPU_REPLACE("maincpu", M68030, 7833600*2)
801   MDRV_CPU_PROGRAM_MAP(macclrclassic_map)
802   MDRV_CPU_VBLANK_INT("screen", mac_rbv_vbl)
803
804   MDRV_RAM_MODIFY("messram")
805   MDRV_RAM_DEFAULT_SIZE("4M")
806   MDRV_RAM_EXTRA_OPTIONS("6M,8M,10M")
807MACHINE_CONFIG_END
808*/
766809static MACHINE_CONFIG_DERIVED( maclc3, maclc )
767810
768811   MDRV_CPU_REPLACE("maincpu", M68030, 25000000)
769812   MDRV_CPU_PROGRAM_MAP(maclc3_map)
813   MDRV_CPU_VBLANK_INT("screen", mac_rbv_vbl)
770814
771815   MDRV_VIDEO_START(macsonora)
772816   MDRV_VIDEO_UPDATE(macrbvvram)
r9440r9441
889933
890934   MDRV_CPU_REPLACE("maincpu", M68030, 20000000)
891935   MDRV_CPU_PROGRAM_MAP(maciici_map)
936   MDRV_CPU_VBLANK_INT("screen", mac_rbv_vbl)
892937
893938   MDRV_PALETTE_LENGTH(256)
894939
r9440r9441
12641309ROM_START( maclc )
12651310   ROM_REGION32_BE(0x80000, "bootrom", 0)
12661311        ROM_LOAD("350eacf0.rom", 0x000000, 0x080000, CRC(71681726) SHA1(6bef5853ae736f3f06c2b4e79772f65910c3b7d4))
1312
1313   ROM_REGION(0x1100, "egret", 0)
1314   ROM_LOAD( "341s0851.bin", 0x000000, 0x001100, CRC(ea9ea6e4) SHA1(8b0dae3ec66cdddbf71567365d2c462688aeb571) )
12671315ROM_END
12681316
12691317ROM_START( macii )
r9440r9441
13221370ROM_START( maciisi )
13231371   ROM_REGION32_BE(0x80000, "bootrom", 0)
13241372        ROM_LOAD( "36b7fb6c.rom", 0x000000, 0x080000, CRC(f304d973) SHA1(f923de4125aae810796527ff6e25364cf1d54eec) )
1373
1374   ROM_REGION(0x1100, "egret", 0)
1375   ROM_LOAD( "341s0851.bin", 0x000000, 0x001100, CRC(ea9ea6e4) SHA1(8b0dae3ec66cdddbf71567365d2c462688aeb571) )
13251376ROM_END
13261377
13271378ROM_START( macclas2 )
13281379   ROM_REGION32_BE(0x80000, "bootrom", 0)
13291380        ROM_LOAD( "3193670e.rom", 0x000000, 0x080000, CRC(96d2e1fd) SHA1(50df69c1b6e805e12a405dc610bc2a1471b2eac2) )
1381
1382   ROM_REGION(0x1100, "egret", 0)
1383   ROM_LOAD( "341s0851.bin", 0x000000, 0x001100, CRC(ea9ea6e4) SHA1(8b0dae3ec66cdddbf71567365d2c462688aeb571) )
13301384ROM_END
13311385
13321386ROM_START( maclc2 )
r9440r9441
13351389        ROM_LOAD32_BYTE( "341-0475_ud2-mh.bin", 0x000001, 0x020000, CRC(7b013595) SHA1(0b82d8fac570270db9774f6254017d28611ae756) )
13361390        ROM_LOAD32_BYTE( "341-0474_uc2-ml.bin", 0x000002, 0x020000, CRC(2ff2f52b) SHA1(876850df61d0233c1dd3c00d48d8d6690186b164) )
13371391        ROM_LOAD32_BYTE( "341-0473_ub2-ll.bin", 0x000003, 0x020000, CRC(8843c37c) SHA1(bb5104110507ca543d106f11c6061245fd90c1a7) )
1392
1393   ROM_REGION(0x1100, "egret", 0)
1394   ROM_LOAD( "341s0851.bin", 0x000000, 0x001100, CRC(ea9ea6e4) SHA1(8b0dae3ec66cdddbf71567365d2c462688aeb571) )
13381395ROM_END
13391396
13401397ROM_START( maclc3 )
13411398   ROM_REGION32_BE(0x100000, "bootrom", 0)
13421399        ROM_LOAD( "ecbbc41c.rom", 0x000000, 0x100000, CRC(e578f5f3) SHA1(c77df3220c861f37a2c553b6ee9241b202dfdffc) )
1400
1401   ROM_REGION(0x1100, "egret", 0)
1402   ROM_LOAD( "341s0851.bin", 0x000000, 0x001100, CRC(ea9ea6e4) SHA1(8b0dae3ec66cdddbf71567365d2c462688aeb571) )
13431403ROM_END
13441404
13451405ROM_START( pmac6100 )
r9440r9441
13561416   ROM_REGION16_BE(0x40000, "bootrom", 0)
13571417        ROM_LOAD16_WORD( "96645f9c.rom", 0x000000, 0x040000, CRC(29ac7ee9) SHA1(7f3acf40b1f63612de2314a2e9fcfeafca0711fc) )
13581418ROM_END
1419/*
1420ROM_START( maccclas )
1421   ROM_REGION32_BE(0x100000, "bootrom", 0)
1422        ROM_LOAD( "ecd99dc0.rom", 0x000000, 0x100000, CRC(c84c3aa5) SHA1(fd9e852e2d77fe17287ba678709b9334d4d74f1e) )
13591423
1424   ROM_REGION(0x1100, "egret", 0)
1425   ROM_LOAD( "341s0851.bin", 0x000000, 0x001100, CRC(ea9ea6e4) SHA1(8b0dae3ec66cdddbf71567365d2c462688aeb571) )
1426ROM_END
1427*/
13601428/*    YEAR  NAME      PARENT    COMPAT  MACHINE   INPUT     INIT     COMPANY          FULLNAME */
13611429COMP( 1984, mac128k,  0,   0,   mac128k,  macplus,  mac128k512k,      "Apple Computer", "Macintosh 128k",  GAME_NOT_WORKING )
13621430COMP( 1984, mac512k,  mac128k,  0,   mac512ke, macplus,  mac128k512k,  "Apple Computer", "Macintosh 512k",  GAME_NOT_WORKING )
r9440r9441
13771445COMP( 1991, macpb100, 0,        0,      macprtb,  macadb,   macprtb,  "Apple Computer", "Macintosh PowerBook 100", GAME_NOT_WORKING )
13781446COMP( 1991, macclas2, 0,   0,   macclas2, macadb,   macclassic2,      "Apple Computer", "Macintosh Classic II",  GAME_NOT_WORKING )
13791447COMP( 1991, maclc2,   0,   0,   maclc2,   maciici,  maclc2,             "Apple Computer", "Macintosh LC II",  GAME_NOT_WORKING )
1448//COMP( 1993, maccclas, 0,        0,      maccclas, macadb,   maclrcclassic,        "Apple Computer", "Macintosh Color Classic", GAME_NOT_WORKING )
13801449COMP( 1993, maclc3,   0,   0,   maclc3,   maciici,  maclc3,             "Apple Computer", "Macintosh LC III",  GAME_NOT_WORKING )
13811450COMP( 1994, pmac6100, 0,   0,   pwrmac,   macadb,   macpm6100,         "Apple Computer", "Power Macintosh 6100",  GAME_NOT_WORKING | GAME_NO_SOUND )
13821451

Previous 15994 Revisions Next


© 1998-2018 The MESS Team