From 58f41bfa47744ad7920386bbab1e594f9954519b Mon Sep 17 00:00:00 2001 From: arbee Date: Thu, 12 Jan 2023 22:49:26 -0500 Subject: [PATCH] New machines added as NOT_WORKING --------------------------------- Apple IIgs (1991 Mark Twain prototype) [R. Belmont, anonymous] --- src/mame/apple/apple2gs.cpp | 58 +++++++++++++++++++++++++++++++++---- src/mame/mame.lst | 1 + 2 files changed, 53 insertions(+), 6 deletions(-) diff --git a/src/mame/apple/apple2gs.cpp b/src/mame/apple/apple2gs.cpp index ef0fb8724cc..e06bbd457c1 100644 --- a/src/mame/apple/apple2gs.cpp +++ b/src/mame/apple/apple2gs.cpp @@ -12,6 +12,9 @@ - ROM 00/01: original motherboard, 256K of RAM (banks 00/01/E0/E1 only), FPI chip manages fast/slow side - ROM 03: revised motherboard, 1M of RAM (banks 00/01/->0F/E0/E1), CYA chip replaces FPI - Expanded IIe: ROM 00/01 motherboard in a IIe case with a IIe keyboard rather than ADB + - "Mark Twain" prototype: ROM 3 hardware, SWIM1 instead of IWM, built-in floppy, integrated High-Speed SCSI Card + and internal SCSI HDD, 2 SIMM slots for RAM expansion instead of the proprietary memory slot of the previous IIgs. + Only 5 slots: slots 5 and 7 are missing (5 for the SuperDrive, 7 for the SCSI). Timing in terms of the 14M 14.3181818 MHz clock (1/2 of the 28.6363636 master clock): - 1 2.8 MHz 65816 cycle is 5 14M clocks. @@ -75,6 +78,7 @@ #include "machine/applefdintf.h" #include "machine/iwm.h" +#include "machine/swim1.h" #include "screen.h" #include "softlist_dev.h" @@ -170,6 +174,7 @@ public: void apple2gs(machine_config &config); void apple2gsr1(machine_config &config); + void apple2gsmt(machine_config &config); void rom1_init() { m_is_rom3 = false; } void rom3_init() { m_is_rom3 = true; } @@ -3886,6 +3891,22 @@ void apple2gs_state::apple2gsr1(machine_config &config) m_adbmicro->write_p<3>().set(FUNC(apple2gs_state::adbmicro_p3_out)); } +void apple2gs_state::apple2gsmt(machine_config &config) +{ + apple2gs(config); + + // SWIM1 344S0061 confirmed on two different Mark Twain boards, with 15.6672 MHz oscillator + SWIM1(config.replace(), m_iwm, 15.6672_MHz_XTAL); + m_iwm->phases_cb().set(FUNC(apple2gs_state::phases_w)); + m_iwm->sel35_cb().set(FUNC(apple2gs_state::sel35_w)); + m_iwm->devsel_cb().set(FUNC(apple2gs_state::devsel_w)); + + applefdintf_device::add_525(config, m_floppy[0]); + applefdintf_device::add_525(config, m_floppy[1]); + applefdintf_device::add_35_hd(config, m_floppy[2]); + applefdintf_device::add_35_hd(config, m_floppy[3]); +} + /*************************************************************************** Game driver(s) @@ -3899,7 +3920,7 @@ ROM_START(apple2gs) ROM_REGION(0x1000,"gfx1",0) ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) /* need label/part number */ - ROM_REGION(0x40000,"maincpu",0) + ROM_REGION(0x80000,"maincpu",0) // 341-0728 is the MASK rom version while 341-0737 is the EPROM version - SAME data. ROM_LOAD("341-0728", 0x00000, 0x20000, CRC(8d410067) SHA1(c0f4704233ead14cb8e1e8a68fbd7063c56afd27) ) /* 341-0728: IIgs ROM03 FC-FD */ // 341-0748 is the MASK rom version while 341-0749 is the EPROM version - SAME data. @@ -3914,7 +3935,7 @@ ROM_START(apple2gsr3p) ROM_REGION(0x1000,"gfx1",0) ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) /* need label/part number */ - ROM_REGION(0x40000,"maincpu",0) + ROM_REGION(0x80000,"maincpu",0) ROM_LOAD("341-0728", 0x00000, 0x20000, CRC(8d410067) SHA1(c0f4704233ead14cb8e1e8a68fbd7063c56afd27) ) /* 341-0728: IIgs ROM03 prototype FC-FD - 28 pin MASK rom */ ROM_LOAD("341-0729", 0x20000, 0x20000, NO_DUMP) /* 341-0729: IIgs ROM03 prototype FE-FF */ ROM_END @@ -3926,7 +3947,7 @@ ROM_START(apple2gsr1) ROM_REGION(0x1000,"gfx1",0) ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) /* need label/part number */ - ROM_REGION(0x40000,"maincpu",0) + ROM_REGION(0x80000,"maincpu",0) ROM_LOAD("342-0077-b", 0x20000, 0x20000, CRC(42f124b0) SHA1(e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37)) /* 342-0077-B: IIgs ROM01 */ ROM_END @@ -3937,7 +3958,7 @@ ROM_START(apple2gsr0) ROM_REGION(0x1000,"gfx1",0) ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) - ROM_REGION(0x40000,"maincpu",0) + ROM_REGION(0x80000,"maincpu",0) ROM_LOAD("342-0077-a", 0x20000, 0x20000, CRC(dfbdd97b) SHA1(ff0c245dd0732ec4413a934fd80efc2defd8a8e3) ) /* 342-0077-A: IIgs ROM00 */ ROM_END @@ -3948,7 +3969,7 @@ ROM_START(apple2gsr0p) // 6/19/1986 Cortland prototype ROM_REGION(0x1000,"gfx1",0) ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) - ROM_REGION(0x40000,"maincpu",0) + ROM_REGION(0x80000,"maincpu",0) ROM_LOAD( "rombf.bin", 0x020000, 0x020000, CRC(ab04fedf) SHA1(977589a17553956d583a21020080a39dd396df5c) ) ROM_END @@ -3959,10 +3980,34 @@ ROM_START(apple2gsr0p2) // 3/10/1986 Cortland prototype, boots as "Apple //'ing ROM_REGION(0x1000,"gfx1",0) ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) - ROM_REGION(0x40000,"maincpu",0) + ROM_REGION(0x80000,"maincpu",0) ROM_LOAD( "apple iigs alpha rom 2.0 19860310.bin", 0x020000, 0x020000, CRC(a47d275f) SHA1(c5836adcfc8be69c7351b84afa94c814e8d92b81) ) ROM_END +ROM_START(apple2gsmt) + // 50741 ADB MCU inside the IIgs system unit + ROM_REGION(0x1000, "adbmicro", 0) + ROM_LOAD( "341s0632-2.bin", 0x000000, 0x001000, CRC(e1c11fb0) SHA1(141d18c36a617ab9dce668445440d34354be0672) ) + + ROM_REGION(0x1000, "gfx1", 0) + ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) + + ROM_REGION(0x80000, "maincpu", 0) + // The Mark Twain ROM is 512K, with address bit 16 inverted (same as ROM 3). + // The first 256K is filled with 64K of 0xF0, then 0xF1, 0xF2, and 0xF3. I'm guessing this was meant to be + // a small ROM disk at $F00000, like the Mac Classic has. The second 256K is the firmware we all know from + // the "System 6.0.1" source leak. + ROM_LOAD( "mtrom.bin", 0x040000, 0x040000, CRC(d75414c5) SHA1(7054915f5e5f9f3bb2cbecf6830d4f80793694a6) ) + ROM_CONTINUE(0x10000, 0x10000) + ROM_CONTINUE(0x00000, 0x10000) + ROM_CONTINUE(0x30000, 0x10000) + ROM_CONTINUE(0x20000, 0x10000) + + // The firmware for the built-in High-Speed SCSI Card + ROM_REGION(0x8000, "hsscsi", 0) + ROM_LOAD( "mtscsi.bin", 0x000000, 0x008000, CRC(7426c880) SHA1(1c16310e5c180701a05089d69c6e72e9dc7434f6) ) +ROM_END + } // Anonymous namespace @@ -3973,3 +4018,4 @@ COMP( 1987, apple2gsr1, apple2gs, 0, apple2gsr1, apple2gs, apple2gs_state COMP( 1986, apple2gsr0, apple2gs, 0, apple2gsr1, apple2gs, apple2gs_state, rom1_init, "Apple Computer", "Apple IIgs (ROM00)", MACHINE_SUPPORTS_SAVE ) COMP( 1986, apple2gsr0p, apple2gs, 0, apple2gsr1, apple2gs, apple2gs_state, rom1_init, "Apple Computer", "Apple IIgs (ROM00 prototype 6/19/1986)", MACHINE_SUPPORTS_SAVE ) COMP( 1986, apple2gsr0p2, apple2gs, 0, apple2gsr1, apple2gs, apple2gs_state, rom1_init, "Apple Computer", "Apple IIgs (ROM00 prototype 3/10/1986)", MACHINE_SUPPORTS_SAVE ) +COMP( 1991, apple2gsmt, apple2gs, 0, apple2gsmt, apple2gsrom3, apple2gs_state, rom3_init, "Apple Computer", "Apple IIgs (1991 Mark Twain prototype)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 20db6b0b6db..a0a807168ec 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -1512,6 +1512,7 @@ apple2gsr0p // June 19, 1986 Apple IIgs ROM00 prototype apple2gsr0p2 // March 10, 1986 Apple IIgs ROM00 prototype apple2gsr1 // Sep 1987 Apple IIgs ROM01 apple2gsr3p // ??? 198? Apple IIgs ROM03 prototype +apple2gsmt // 1991 "Mark Twain" prototype @source:apple/apple3.cpp apple3 // May 1980 Apple ///