mac: split 128/512/Plus into new separate, more modern driver. [R. Belmont]

nw: Driver locks up when you move the mouse b/c z80scc can't ack DCD change interrupts yet.  I'm checking this in so Edstrom can fix that ;-)
This commit is contained in:
arbee 2016-10-27 23:05:36 -04:00
parent 17681b2d75
commit ceb0a0b457
5 changed files with 1548 additions and 239 deletions

View File

@ -959,14 +959,6 @@ static MACHINE_CONFIG_START( mac512ke, mac_state )
MCFG_RAM_DEFAULT_SIZE("512K")
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mac128k, mac512ke )
/* internal ram */
MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("128K")
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( macplus, mac512ke )
MCFG_CPU_MODIFY( "maincpu" )
MCFG_CPU_PROGRAM_MAP(macplus_map)
@ -1966,136 +1958,6 @@ static MACHINE_CONFIG_START( macqd700, mac_state )
MCFG_SOFTWARE_LIST_ADD("hdd_list", "mac_hdd")
MACHINE_CONFIG_END
static INPUT_PORTS_START( macplus )
PORT_START("MOUSE0") /* Mouse - button */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Mouse Button") PORT_CODE(MOUSECODE_BUTTON1)
PORT_START("MOUSE1") /* Mouse - X AXIS */
PORT_BIT( 0xff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1)
PORT_START("MOUSE2") /* Mouse - Y AXIS */
PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1)
/* R Nabet 000531 : pseudo-input ports with keyboard layout */
/* we only define US layout for keyboard - international layout is different! */
/* note : 16 bits at most per port! */
/* main keyboard pad */
PORT_START("KEY0")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_UNUSED) /* extra key on ISO : */
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
PORT_START("KEY1")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&')
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_')
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
PORT_START("KEY2")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR('\r')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|')
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
PORT_START("KEY3")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('`') PORT_CHAR('~')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_UNUSED) /* keyboard Enter : */
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_UNUSED) /* escape: */
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_UNUSED) /* ??? */
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Command") PORT_CODE(KEYCODE_LCONTROL)
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Option") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_SHIFT_2)
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_UNUSED) /* Control: */
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_UNUSED) /* keypad pseudo-keycode */
PORT_BIT(0xE000, IP_ACTIVE_HIGH, IPT_UNUSED) /* ??? */
/* keypad */
PORT_START("KEY4")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK))
PORT_BIT(0x0038, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Keypad Clear") PORT_CODE(/*KEYCODE_NUMLOCK*/KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL))
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Keypad =") PORT_CODE(/*CODE_OTHER*/KEYCODE_NUMLOCK) PORT_CHAR(UCHAR_MAMEKEY(NUMLOCK))
PORT_BIT(0x0E00, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD))
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("KEY5")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
PORT_BIT(0xE000, IP_ACTIVE_HIGH, IPT_UNUSED)
/* Arrow keys */
PORT_START("KEY6")
PORT_BIT(0x0003, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Right Arrow") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
PORT_BIT(0x0038, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Left Arrow") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Down Arrow") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
PORT_BIT(0x1E00, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Up Arrow") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
PORT_BIT(0xC000, IP_ACTIVE_HIGH, IPT_UNUSED)
INPUT_PORTS_END
static INPUT_PORTS_START( macadb )
PORT_START("MOUSE0") /* Mouse - button */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Mouse Button") PORT_CODE(MOUSECODE_BUTTON1)
@ -2233,91 +2095,6 @@ INPUT_PORTS_END
***************************************************************************/
/*
ROM_START( mactw )
ROM_REGION16_BE(0x20000, "bootrom", 0)
ROM_LOAD( "rom4.3t_07-04-83.bin", 0x0000, 0x10000, CRC(d2c42f18) SHA1(f868c09ca70383a69751c37a5a3110a9597462a4) )
ROM_END
*/
ROM_START( mac128k )
ROM_REGION16_BE(0x20000, "bootrom", 0) // 28ba61ce
//ROM_LOAD16_WORD( "28ba61ce - Macintosh-128k.rom", 0x00000, 0x10000, CRC(6d0c8a28) SHA1(9d86c883aa09f7ef5f086d9e32330ef85f1bc93b) )
ROMX_LOAD("vti__416_vh_2605__23256-1020__342-0220-a__(c)apple_83__korea-ae.rom-hi.27256.u6d", 0x00000, 0x08000, CRC(198210ad) SHA1(2590ff4af5ac0361babdf0dc5da18e2eecad454a), ROM_SKIP(1) ) // see below for alternate labels
ROMX_LOAD("vti__416_vh_2826__23256-1023__342-0221-a__(c)apple_83__korea-ae.rom-lo.27256.u8d", 0x00001, 0x08000, CRC(fd2665c2) SHA1(8507932a854bd28196a17785c8b1851cb53eaf64), ROM_SKIP(1) ) // see below for alternate labels
/* These two roms were manufactured by at least 3 manufacturers:
VTi:
"<VTi logo along side> // 416 VH 2605 // 23256-1020 // 342-0220-A // (C)APPLE 83 // KOREA-AE"
"<VTi logo along side> // 416 VH 2826 // 23256-1023 // 342-0221-A // (C)APPLE 83 // KOREA-AE"
Synertek:
"<Synertek 'S' logo> 8416 G // C19728 // 342-0220-A // (C)APPLE 83"
"<Synertek 'S' logo> 8410 G // C19729 // 342-0221-A // (C)APPLE 83"
Hitachi:
[can't find reference for rom-hi]
"<Hitachi 'target' logo> 8413 // 3256 016 JAPAN // (C)APPLE 83 // 342-0221-A"
References:
http://www.vintagecomputer.net/apple/Macintosh/Macintosh_motherboard.jpg
https://upload.wikimedia.org/wikipedia/commons/3/34/Macintosh-motherboard.jpg
https://68kmla.org/forums/uploads/monthly_01_2016/post-2105-0-31195100-1452296677.jpg
https://68kmla.org/forums/uploads/monthly_12_2014/post-2597-0-46269000-1419299800.jpg
http://cdn.cultofmac.com/wp-content/uploads/2014/01/12A-128k-Motherboard.jpg
*/
ROM_END
ROM_START( mac512k )
ROM_REGION16_BE(0x20000, "bootrom", 0) //
//ROM_LOAD16_WORD( "28ba4e50 - Macintosh-512k.rom", 0x00000, 0x10000, CRC(cf759e0d) SHA1(5b1ced181b74cecd3834c49c2a4aa1d7ffe944d7) )
ROMX_LOAD("vti__512_vh_6434__23256-1104__342-0220-b__(c)_apple_84__korea-a.rom-hi.27256.u6d", 0x00000, 0x08000, CRC(0dce9a3f) SHA1(101ca6570f5a273e400d1a8bc63e15ee0e94153e), ROM_SKIP(1) ) // "<VTi logo along side> 512 VH 6434 // 23256-1104 // 342-0220-B // (C) APPLE 84 // KOREA-A"
ROMX_LOAD("vti__512_vh_6709__23256-1105__342-0221-b__(c)_apple_84__korea-a.rom-lo.27256.u8d", 0x00001, 0x08000, CRC(d51f376e) SHA1(575586109e876cffa4a4d472cb38771aa21b70cb), ROM_SKIP(1) ) // "<VTi logo along side> 512 VH 6709 // 23256-1105 // 342-0221-B // (C) APPLE 84 // KOREA-A"
// reference: http://i.ebayimg.com/images/g/Uj8AAOSwvzRXy2tW/s-l1600.jpg
ROM_END
ROM_START( unitron )
ROM_REGION16_BE(0x20000, "bootrom", 0)
ROM_LOAD16_WORD( "unitron_512.rom", 0x00000, 0x10000, CRC(1eabd37f) SHA1(a3d3696c08feac6805effb7ee07b68c2bf1a8dd7) )
ROM_END
ROM_START( utrn1024 )
ROM_REGION16_BE(0x20000, "bootrom", 0)
// CRCs match the original "Lonely Hearts" version 1 Mac Plus ROM: 4d1eeee1
ROM_LOAD16_BYTE( "macplus_mem_h.e6", 0x000000, 0x010000, CRC(5095fe39) SHA1(be780580033d914b5035d60b5ebbd66bd1d28a9b) )
ROM_LOAD16_BYTE( "macplus_mem_l.e7", 0x000001, 0x010000, CRC(fb766270) SHA1(679f529fbfc05f9cc98924c53457d2996dfcb1a7) )
ROM_END
//ROMX_LOAD( "4d1f8172 - MacPlus v3.rom", 0x00000, 0x020000, CRC(b2102e8e) SHA1(7d2f808a045aa3a1b242764f0e2c7d13e288bf1f), ROM_GROUPWORD | ROM_BIOS(1) )
//ROMX_LOAD( "4d1eeae1 - MacPlus v2.rom", 0x00000, 0x020000, CRC(7cacd18f) SHA1(73bf2eb215646e108daa0cdd874e6c843c8ce421), ROM_GROUPWORD | ROM_BIOS(2) )
//ROMX_LOAD( "4d1eeee1 - MacPlus v1.rom", 0x00000, 0x020000, CRC(4fa5b399) SHA1(e0da7165b92dee90d8b1522429c033729fa73fd2), ROM_GROUPWORD | ROM_BIOS(3) )
ROM_START( mac512ke ) // 512ke has been observed with any of the v3, v2 or v1 macplus romsets installed, and v1 romsets are more common here than in the plus, since the 512ke lacks scsi, which is the cause of the major bug fixed between v1 and v2, hence 512ke is unaffected and was a good way for apple to use the buggy roms rather than destroying them.
ROM_REGION16_BE(0x20000, "bootrom", 0)
ROM_SYSTEM_BIOS(0, "v3", "Loud Harmonicas") // V3 - 4d1f8172
ROMX_LOAD( "vlsi__740_sa_1262__23512-1054__342-0341-c__(c)apple_'83-'86__korea_a.rom-hi.27512.u6d", 0x000000, 0x010000, CRC(f69697e6) SHA1(41317614ac71eb94941e9952f6ea37407e21ffff), ROM_SKIP(1) | ROM_BIOS(1) ) // these also appeared with a different label when made by AMI: "342-0341-C // (C)APPLE 85,86 // (M)AMI 8849MBL // PHILLIPINES"
ROMX_LOAD( "vlsi__740_sa_1342__23512-1055__342-0342-b__(c)apple_'83-'86__korea_a.rom-lo.27512.u8d", 0x000001, 0x010000, CRC(49f25913) SHA1(72f658c02bae265e8845899582575fb7c784ee87), ROM_SKIP(1) | ROM_BIOS(1) ) // these also appeared with a later VLSI label like "<VLSI logo>VLSI // 8905AV 0 AS759 // 23512-1055 // 342-0342-B // (C)APPLE '85-'86"
ROM_SYSTEM_BIOS(1, "v2", "Lonely Heifers") // V2 - 4d1eeae1 - fixes a bug where the system will hang forever on the boot screen if a scsi device is present but does not respond properly
ROMX_LOAD( "vti__624_v0_8636__23512-1010__342-0341-b__(c)apple_'85__mexico_r.rom-hi.27512.u6d", 0x000000, 0x010000, CRC(65341487) SHA1(bf43fa4f5a3dcbbac20f1fe1deedee0895454379), ROM_SKIP(1) | ROM_BIOS(2) )
ROMX_LOAD( "vti__622_v0_b637__23512-1007__342-0342-a__(c)apple_'83-'85__korea_a.rom-lo.27512.u8d", 0x000001, 0x010000, CRC(fb766270) SHA1(679f529fbfc05f9cc98924c53457d2996dfcb1a7), ROM_SKIP(1) | ROM_BIOS(2) )
ROM_SYSTEM_BIOS(2, "v1", "Lonely Hearts") // V1 - 4d1eeee1
ROMX_LOAD( "342-0341-a.rom-hi.27512.u6d", 0x000000, 0x010000, CRC(5095fe39) SHA1(be780580033d914b5035d60b5ebbd66bd1d28a9b), ROM_SKIP(1) | ROM_BIOS(3) ) // label of these two roms may be slightly different from what is listed here, as they are very rare except in 512ke machines; the first part of this label is likely vti__<datecode/lotcode>__23512-1008__ etc.
ROMX_LOAD( "vti__622_v0_b637__23512-1007__342-0342-a__(c)apple_'83-'85__korea_a.rom-lo.27512.u8d", 0x000001, 0x010000, CRC(fb766270) SHA1(679f529fbfc05f9cc98924c53457d2996dfcb1a7), ROM_SKIP(1) | ROM_BIOS(3) ) // label of these two rom may be slightly different from what is listed here, as they are very rare except in 512ke machines; this rom is identical to one of the v2 roms.
ROM_END
ROM_START( macplus )
ROM_REGION16_BE(0x40000, "bootrom", 0)
ROM_SYSTEM_BIOS(0, "v3", "Loud Harmonicas") // V3 - 4d1f8172
ROMX_LOAD( "vlsi__740_sa_1262__23512-1054__342-0341-c__(c)apple_'83-'86__korea_a.rom-hi.27512.u6d", 0x000000, 0x010000, CRC(f69697e6) SHA1(41317614ac71eb94941e9952f6ea37407e21ffff), ROM_SKIP(1) | ROM_BIOS(1) ) // these also appeared with a different label when made by AMI: "342-0341-C // (C)APPLE 85,86 // (M)AMI 8849MBL // PHILLIPINES"
ROMX_LOAD( "vlsi__740_sa_1342__23512-1055__342-0342-b__(c)apple_'83-'86__korea_a.rom-lo.27512.u7d", 0x000001, 0x010000, CRC(49f25913) SHA1(72f658c02bae265e8845899582575fb7c784ee87), ROM_SKIP(1) | ROM_BIOS(1) ) // these also appeared with a later VLSI label like "<VLSI logo>VLSI // 8905AV 0 AS759 // 23512-1055 // 342-0342-B // (C)APPLE '85-'86"
ROM_SYSTEM_BIOS(1, "v2", "Lonely Heifers") // V2 - 4d1eeae1 - fixes a bug where the system will hang forever on the boot screen if a scsi device is present but does not respond properly
ROMX_LOAD( "vti__624_v0_8636__23512-1010__342-0341-b__(c)apple_'85__mexico_r.rom-hi.27512.u6d", 0x000000, 0x010000, CRC(65341487) SHA1(bf43fa4f5a3dcbbac20f1fe1deedee0895454379), ROM_SKIP(1) | ROM_BIOS(2) )
ROMX_LOAD( "vti__622_v0_b637__23512-1007__342-0342-a__(c)apple_'83-'85__korea_a.rom-lo.27512.u7d", 0x000001, 0x010000, CRC(fb766270) SHA1(679f529fbfc05f9cc98924c53457d2996dfcb1a7), ROM_SKIP(1) | ROM_BIOS(2) )
ROM_SYSTEM_BIOS(2, "v1", "Lonely Hearts") // V1 - 4d1eeee1
ROMX_LOAD( "342-0341-a.rom-hi.27512.u6d", 0x000000, 0x010000, CRC(5095fe39) SHA1(be780580033d914b5035d60b5ebbd66bd1d28a9b), ROM_SKIP(1) | ROM_BIOS(3) ) // label of these two roms may be slightly different from what is listed here, as they are very rare except in 512ke machines; the first part of this label is likely vti__<datecode/lotcode>__23512-1008__ etc.
ROMX_LOAD( "vti__622_v0_b637__23512-1007__342-0342-a__(c)apple_'83-'85__korea_a.rom-lo.27512.u7d", 0x000001, 0x010000, CRC(fb766270) SHA1(679f529fbfc05f9cc98924c53457d2996dfcb1a7), ROM_SKIP(1) | ROM_BIOS(3) ) // label of these two rom may be slightly different from what is listed here, as they are very rare except in 512ke machines; this rom is identical to one of the v2 roms.
ROM_SYSTEM_BIOS(3, "romdisk", "mac68k.info self-boot (1/1/2015)")
ROMX_LOAD( "modplus-harp2.bin", 0x000000, 0x028000, CRC(ba56078d) SHA1(debdf328ac73e1662d274a044d8750224f47edef), ROM_GROUPWORD | ROM_BIOS(4) )
ROM_END
ROM_START( macse )
ROM_REGION16_BE(0x40000, "bootrom", 0)
ROM_LOAD16_WORD( "macse.rom", 0x00000, 0x40000, CRC(0f7ff80c) SHA1(58532b7d0d49659fd5228ac334a1b094f0241968))
@ -2533,12 +2310,6 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
//COMP( 1983, mactw, 0, 0, mac128k, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh (4.3T Prototype)", MACHINE_NOT_WORKING )
COMP( 1984, mac128k, 0, 0, mac128k, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh 128k", MACHINE_NOT_WORKING )
COMP( 1984, mac512k, mac128k, 0, mac512ke, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh 512k", MACHINE_NOT_WORKING )
COMP( 1986, mac512ke, macplus, 0, mac512ke, macplus, mac_state, mac512ke, "Apple Computer", "Macintosh 512ke", 0 )
COMP( 1985, unitron, macplus, 0, mac512ke, macplus, mac_state, mac512ke, "bootleg (Unitron)", "Mac 512", MACHINE_NOT_WORKING )
COMP( 1985, utrn1024, macplus, 0, macplus, macplus, mac_state, macplus, "bootleg (Unitron)", "Unitron 1024", 0 )
COMP( 1986, macplus, 0, 0, macplus, macplus, mac_state, macplus, "Apple Computer", "Macintosh Plus", 0 )
COMP( 1987, macse, 0, 0, macse, macadb, mac_state, macse, "Apple Computer", "Macintosh SE", 0 )
COMP( 1987, macsefd, 0, 0, macse, macadb, mac_state, macse, "Apple Computer", "Macintosh SE (FDHD)", 0 )
COMP( 1987, macii, 0, 0, macii, macadb, mac_state, macii, "Apple Computer", "Macintosh II", 0 )

1541
src/mame/drivers/mac128.cpp Executable file

File diff suppressed because it is too large Load Diff

View File

@ -438,12 +438,9 @@ public:
DECLARE_DRIVER_INIT(maciifx);
DECLARE_DRIVER_INIT(maclc);
DECLARE_DRIVER_INIT(macpb160);
DECLARE_DRIVER_INIT(macplus);
DECLARE_DRIVER_INIT(macse);
DECLARE_DRIVER_INIT(macpb140);
DECLARE_DRIVER_INIT(mac128k512k);
DECLARE_DRIVER_INIT(macpm6100);
DECLARE_DRIVER_INIT(mac512ke);
DECLARE_DRIVER_INIT(maclc520);
DECLARE_DRIVER_INIT(maciici);
DECLARE_DRIVER_INIT(maciix);

View File

@ -2163,9 +2163,6 @@ DRIVER_INIT_MEMBER(mac_state,label) \
mac_driver_init(model); \
}
MAC_DRIVER_INIT(mac128k512k, MODEL_MAC_128K512K)
MAC_DRIVER_INIT(mac512ke, MODEL_MAC_512KE)
MAC_DRIVER_INIT(macplus, MODEL_MAC_PLUS)
MAC_DRIVER_INIT(macse, MODEL_MAC_SE)
MAC_DRIVER_INIT(macclassic, MODEL_MAC_CLASSIC)
MAC_DRIVER_INIT(maclc, MODEL_MAC_LC)

View File

@ -17457,10 +17457,7 @@ uccopsj // (c) 1992 Irem (Japan)
uccopsu // (c) 1992 Irem (US)
@source:mac.cpp
mac128k // 1984 Apple Macintosh
mac2fdhd // 1988 Apple Macintosh II (FDHD)
mac512k // 1985 Apple Macintosh 512k
mac512ke // 1986 Apple Macintosh 512ke
maccclas // 1993 Apple Macintosh Color Classic
macclas2 // 1991 Apple Macintosh Classic II
macclasc // 1990 Apple Macintosh Classic
@ -17486,13 +17483,19 @@ macpb170 // 1991 Apple Macintosh PowerBook 170
macpb180 // 1992 Apple Macintosh PowerBook 180
macpb180c // 1992 Apple Macintosh PowerBook 180c
macpd210 // 1992 Apple Macintosh PowerBook Duo 210
macplus // 1986 Apple Macintosh Plus
macprtb // 1989 Apple Macintosh Portable
macqd700 // 1991 Apple Macintosh Quadra 700
macse // 1987 Apple Macintosh SE
macse30 // 1989 Apple Macintosh SE/30
macsefd // 1988 Apple Macintosh SE (FDHD)
pmac6100 // 1993 Apple Power Macintosh 6100
@source:mac128.cpp
mac128k // 1984 Apple Macintosh
mac2fdhd // 1988 Apple Macintosh II (FDHD)
mac512k // 1985 Apple Macintosh 512k
mac512ke // 1986 Apple Macintosh 512ke
macplus // 1986 Apple Macintosh Plus
unitron // 1985 Unitron
utrn1024 // 1986 Unitron 1024