summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/apple2gs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/apple2gs.c')
-rw-r--r--src/mess/drivers/apple2gs.c597
1 files changed, 0 insertions, 597 deletions
diff --git a/src/mess/drivers/apple2gs.c b/src/mess/drivers/apple2gs.c
deleted file mode 100644
index 54c4674f9df..00000000000
--- a/src/mess/drivers/apple2gs.c
+++ /dev/null
@@ -1,597 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nathan Woods,R. Belmont
-/***************************************************************************
-
- drivers/apple2gs.c
- Apple IIgs
- Driver by Nathan Woods and R. Belmont
-
- TODO:
- - Fix spurious interrupt problem (caused by ADB HLE; switching to emulation of the M50740 + GLU should solve this)
- - Fix 5.25" disks
- - Optimize video code
- - More RAM configurations
-
- NOTES:
-
- Video timing and the h/vcount registers:
- VCounts
- HCounts go like this: 0xfa (start of frame, still in vblank)
- 0 0x40 0x41 0x58 (first visible pixel) 0x7f
- ____________________________________ 0x100 (first visible scan line)
- | |
- | |
- | |
- | |
- | |
- HBL region | |
- | |
- | |
- | |
- | |
- | | 0x1c0 (first line of Vblank, c019 and heartbeat trigger here, only true VBL if in A2 classic modes)
- | |
- ____________________________________ 0x1c8 (actual start of vblank in IIgs modes)
-
- 0x1ff (end of frame, in vblank)
-
- There are 64 HCounts total, and 704 pixels total, so HCounts do not map to the pixel clock.
- VCounts do map directly to scanlines however, and count 262 of them.
-
-=================================================================
-
-***************************************************************************/
-
-
-#include "emu.h"
-#include "cpu/g65816/g65816.h"
-#include "includes/apple2.h"
-#include "imagedev/flopdrv.h"
-#include "formats/ap2_dsk.h"
-#include "formats/ap_dsk35.h"
-#include "includes/apple2gs.h"
-#include "machine/sonydriv.h"
-#include "machine/appldriv.h"
-#include "sound/es5503.h"
-#include "machine/applefdc.h"
-#include "machine/8530scc.h"
-#include "sound/speaker.h"
-#include "machine/ram.h"
-
-#include "bus/a2bus/a2bus.h"
-#include "bus/a2bus/a2lang.h"
-#include "bus/a2bus/a2diskii.h"
-#include "bus/a2bus/a2mockingboard.h"
-#include "bus/a2bus/a2cffa.h"
-#include "bus/a2bus/a2memexp.h"
-#include "bus/a2bus/a2scsi.h"
-#include "bus/a2bus/a2thunderclock.h"
-#include "bus/a2bus/a2ssc.h"
-#include "bus/a2bus/a2softcard.h"
-#include "bus/a2bus/a2sam.h"
-#include "bus/a2bus/a2alfam2.h"
-#include "bus/a2bus/a2echoii.h"
-#include "bus/a2bus/a2arcadebd.h"
-#include "bus/a2bus/a2midi.h"
-#include "bus/a2bus/a2vulcan.h"
-#include "bus/a2bus/a2zipdrive.h"
-//#include "bus/a2bus/a2udrive.h"
-#include "bus/a2bus/a2hsscsi.h"
-
-static const gfx_layout apple2gs_text_layout =
-{
- 14,8, /* 14*8 characters */
- 512, /* 256 characters */
- 1, /* 1 bits per pixel */
- { 0 }, /* no bitplanes; 1 bit per pixel */
- { 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1 }, /* x offsets */
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 8*8 /* every char takes 8 bytes */
-};
-
-static const gfx_layout apple2gs_dbltext_layout =
-{
- 7,8, /* 7*8 characters */
- 512, /* 256 characters */
- 1, /* 1 bits per pixel */
- { 0 }, /* no bitplanes; 1 bit per pixel */
- { 7, 6, 5, 4, 3, 2, 1 }, /* x offsets */
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 8*8 /* every char takes 8 bytes */
-};
-
-static GFXDECODE_START( apple2gs )
- GFXDECODE_ENTRY( "gfx1", 0x0000, apple2gs_text_layout, 0, 2 )
- GFXDECODE_ENTRY( "gfx1", 0x0000, apple2gs_dbltext_layout, 0, 2 )
-GFXDECODE_END
-
-static const unsigned char apple2gs_palette[] =
-{
- 0x0, 0x0, 0x0, /* Black $0 $0000 */
- 0xD, 0x0, 0x3, /* Deep Red $1 $0D03 */
- 0x0, 0x0, 0x9, /* Dark Blue $2 $0009 */
- 0xD, 0x2, 0xD, /* Purple $3 $0D2D */
- 0x0, 0x7, 0x2, /* Dark Green $4 $0072 */
- 0x5, 0x5, 0x5, /* Dark Gray $5 $0555 */
- 0x2, 0x2, 0xF, /* Medium Blue $6 $022F */
- 0x6, 0xA, 0xF, /* Light Blue $7 $06AF */
- 0x8, 0x5, 0x0, /* Brown $8 $0850 */
- 0xF, 0x6, 0x0, /* Orange $9 $0F60 */
- 0xA, 0xA, 0xA, /* Light Gray $A $0AAA */
- 0xF, 0x9, 0x8, /* Pink $B $0F98 */
- 0x1, 0xD, 0x0, /* Light Green $C $01D0 */
- 0xF, 0xF, 0x0, /* Yellow $D $0FF0 */
- 0x4, 0xF, 0x9, /* Aquamarine $E $04F9 */
- 0xF, 0xF, 0xF /* White $F $0FFF */
-};
-
-static INPUT_PORTS_START( apple2gs )
- PORT_INCLUDE( apple2ep )
-
- PORT_START("adb_mouse_x")
- PORT_BIT( 0x7f, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_CODE(MOUSECODE_BUTTON2) PORT_NAME("Mouse Button 1")
-
- PORT_START("adb_mouse_y")
- PORT_BIT( 0x7f, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_CODE(MOUSECODE_BUTTON1) PORT_NAME("Mouse Button 0")
-
-INPUT_PORTS_END
-
-
-
-/* Initialize the palette */
-PALETTE_INIT_MEMBER(apple2gs_state,apple2gs)
-{
- int i;
-
-// PALETTE_INIT_NAME(apple2)(palette);
-
- for (i = 0; i < 16; i++)
- {
- palette.set_pen_color(i,
- apple2gs_palette[(3*i)]*17,
- apple2gs_palette[(3*i)+1]*17,
- apple2gs_palette[(3*i)+2]*17);
-
- m_a2_palette[i] = rgb_t(apple2gs_palette[(3*i)]*17, apple2gs_palette[(3*i)+1]*17, apple2gs_palette[(3*i)+2]*17);
- }
-}
-
-READ8_MEMBER(apple2gs_state::apple2gs_adc_read)
-{
- return 0x80;
-}
-
-static const floppy_interface apple2gs_floppy35_floppy_interface =
-{
- FLOPPY_STANDARD_5_25_DSHD,
- LEGACY_FLOPPY_OPTIONS_NAME(apple35_iigs),
- "floppy_3_5"
-};
-
-static const floppy_interface apple2gs_floppy525_floppy_interface =
-{
- FLOPPY_STANDARD_5_25_DSHD,
- LEGACY_FLOPPY_OPTIONS_NAME(apple2),
- "floppy_5_25"
-};
-
-
-static ADDRESS_MAP_START( apple2gs_map, AS_PROGRAM, 8, apple2gs_state )
- /* nothing in the address map - everything is added dynamically */
-ADDRESS_MAP_END
-
-// ADB microcontroller emulation
-//
-// Huge thanks to Neil Parker's writeup on the ADB microcontroller!
-// http://www.llx.com/~nparker/a2/adb.html
-
-#if RUN_ADB_MICRO
-READ8_MEMBER(apple2gs_state::adbmicro_p0_in)
-{
- return m_glu_bus;
-}
-
-READ8_MEMBER(apple2gs_state::adbmicro_p1_in)
-{
- if (m_is_rom3)
- {
- return 0x06; // indicate ROM 3
- }
-
- return 0xff;
-}
-
-READ8_MEMBER(apple2gs_state::adbmicro_p2_in)
-{
- UINT8 rv = 0;
-
- rv |= 0x40; // no reset
- rv |= (m_adb_line) ? 0x00 : 0x80;
-
- return rv;
-}
-
-READ8_MEMBER(apple2gs_state::adbmicro_p3_in)
-{
- return 0x7; // don't press IIE capslock/ctrl/shift
-}
-
-WRITE8_MEMBER(apple2gs_state::adbmicro_p0_out)
-{
- m_glu_bus = data;
-}
-
-WRITE8_MEMBER(apple2gs_state::adbmicro_p1_out)
-{
-}
-
-WRITE8_MEMBER(apple2gs_state::adbmicro_p2_out)
-{
- if (!(data & 0x10))
- {
- if (m_adbmicro->are_port_bits_output(0, 0xff))
- {
- keyglu_mcu_write(data & 7, m_glu_bus);
- }
- else // read GLU
- {
- m_glu_bus = keyglu_mcu_read(data & 7);
- }
- }
-}
-
-WRITE8_MEMBER(apple2gs_state::adbmicro_p3_out)
-{
- if (((data & 0x08) == 0x08) != m_adb_line)
- {
- m_adb_dtime = (int)(machine().time().as_ticks(XTAL_3_579545MHz*2) - m_last_adb_time);
-// printf("ADB change to %d (dtime %d)\n", (data>>3) & 1, m_adb_dtime);
- m_last_adb_time = machine().time().as_ticks(XTAL_3_579545MHz*2);
- m_adb_line = (data & 0x8) ? true : false;
- }
-}
-#endif
-
-WRITE_LINE_MEMBER(apple2gs_state::a2bus_irq_w)
-{
- if (state)
- {
- apple2gs_add_irq(IRQ_SLOT);
- }
- else
- {
- apple2gs_remove_irq(IRQ_SLOT);
- }
-}
-
-WRITE_LINE_MEMBER(apple2gs_state::a2bus_nmi_w)
-{
- m_maincpu->set_input_line(INPUT_LINE_NMI, state);
-}
-
-WRITE_LINE_MEMBER(apple2gs_state::a2bus_inh_w)
-{
- m_inh_slot = -1;
- apple2_update_memory();
-}
-
-static SLOT_INTERFACE_START(apple2_cards)
- SLOT_INTERFACE("diskii", A2BUS_DISKII) /* Disk II Controller Card */
- SLOT_INTERFACE("mockingboard", A2BUS_MOCKINGBOARD) /* Sweet Micro Systems Mockingboard */
- SLOT_INTERFACE("phasor", A2BUS_PHASOR) /* Applied Engineering Phasor */
- SLOT_INTERFACE("cffa2", A2BUS_CFFA2) /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */
- SLOT_INTERFACE("cffa202", A2BUS_CFFA2_6502) /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */
- SLOT_INTERFACE("memexp", A2BUS_MEMEXP) /* Apple II Memory Expansion Card */
- SLOT_INTERFACE("ramfactor", A2BUS_RAMFACTOR) /* Applied Engineering RamFactor */
- SLOT_INTERFACE("thclock", A2BUS_THUNDERCLOCK) /* ThunderWare ThunderClock Plus */
- SLOT_INTERFACE("ssc", A2BUS_SSC) /* Apple Super Serial Card */
- SLOT_INTERFACE("sam", A2BUS_SAM) /* SAM Software Automated Mouth (8-bit DAC + speaker) */
- SLOT_INTERFACE("alfam2", A2BUS_ALFAM2) /* ALF Apple Music II */
- SLOT_INTERFACE("echoii", A2BUS_ECHOII) /* Street Electronics Echo II */
- SLOT_INTERFACE("arcbd", A2BUS_ARCADEBOARD) /* Third Millenium Engineering Arcade Board */
- SLOT_INTERFACE("midi", A2BUS_MIDI) /* Generic 6840+6850 MIDI board */
- SLOT_INTERFACE("vulcan", A2BUS_VULCAN) /* AE Vulcan IDE card */
- SLOT_INTERFACE("vulcangold", A2BUS_VULCANGOLD) /* AE Vulcan Gold IDE card */
- SLOT_INTERFACE("zipdrive", A2BUS_ZIPDRIVE) /* ZIP Technologies IDE card */
- SLOT_INTERFACE("echoiiplus", A2BUS_ECHOPLUS) /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
-// SLOT_INTERFACE("mdturbo", A2BUS_UDRIVE_TURBO) /* ///SHH Systeme MicroDrive Turbo IDE card */
-
-// SLOT_INTERFACE("softcard", A2BUS_SOFTCARD) /* Microsoft SoftCard */ // appears not to be IIgs compatible?
- SLOT_INTERFACE("scsi", A2BUS_SCSI) /* Apple II SCSI Card */
- SLOT_INTERFACE("hsscsi", A2BUS_HSSCSI) /* Apple II High-Speed SCSI Card */
-SLOT_INTERFACE_END
-
-static MACHINE_CONFIG_START( apple2gs, apple2gs_state )
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", G65816, APPLE2GS_14M/5)
- MCFG_CPU_PROGRAM_MAP(apple2gs_map)
- #if RUN_ADB_MICRO
- MCFG_CPU_ADD(ADBMICRO_TAG, M50741, XTAL_3_579545MHz)
- MCFG_M5074X_PORT0_READ_CALLBACK(READ8(apple2gs_state, adbmicro_p0_in))
- MCFG_M5074X_PORT0_WRITE_CALLBACK(WRITE8(apple2gs_state, adbmicro_p0_out))
- MCFG_M5074X_PORT1_READ_CALLBACK(READ8(apple2gs_state, adbmicro_p1_in))
- MCFG_M5074X_PORT1_WRITE_CALLBACK(WRITE8(apple2gs_state, adbmicro_p1_out))
- MCFG_M5074X_PORT2_READ_CALLBACK(READ8(apple2gs_state, adbmicro_p2_in))
- MCFG_M5074X_PORT2_WRITE_CALLBACK(WRITE8(apple2gs_state, adbmicro_p2_out))
- MCFG_M5074X_PORT3_READ_CALLBACK(READ8(apple2gs_state, adbmicro_p3_in))
- MCFG_M5074X_PORT3_WRITE_CALLBACK(WRITE8(apple2gs_state, adbmicro_p3_out))
- #endif
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", apple2gs_state, apple2_interrupt, "screen", 0, 1)
- MCFG_QUANTUM_TIME(attotime::from_hz(60))
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(704, 262) // 640+32+32 for the borders
- MCFG_SCREEN_VISIBLE_AREA(0,703,0,230)
- MCFG_SCREEN_UPDATE_DRIVER(apple2gs_state, screen_update_apple2gs)
-
- MCFG_PALETTE_ADD("palette", 16)
- MCFG_PALETTE_INIT_OWNER(apple2gs_state, apple2gs)
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", apple2gs )
-
- MCFG_MACHINE_START_OVERRIDE(apple2gs_state, apple2gs )
- MCFG_MACHINE_RESET_OVERRIDE(apple2gs_state, apple2gs )
-
- MCFG_VIDEO_START_OVERRIDE(apple2gs_state, apple2gs )
-
- /* keyboard controller */
- MCFG_DEVICE_ADD("ay3600", AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(apple2_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(apple2_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(apple2_state, ay3600_iie_data_ready_w))
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("a2speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
-
- MCFG_ES5503_ADD("es5503", APPLE2GS_7M)
- MCFG_ES5503_OUTPUT_CHANNELS(2)
- MCFG_ES5503_IRQ_FUNC(WRITELINE(apple2gs_state, apple2gs_doc_irq))
- MCFG_ES5503_ADC_FUNC(READ8(apple2gs_state, apple2gs_adc_read))
-
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-
- /* slot devices */
- MCFG_DEVICE_ADD("a2bus", A2BUS, 0)
- MCFG_A2BUS_CPU("maincpu")
- MCFG_A2BUS_OUT_IRQ_CB(WRITELINE(apple2gs_state, a2bus_irq_w))
- MCFG_A2BUS_OUT_NMI_CB(WRITELINE(apple2gs_state, a2bus_nmi_w))
- MCFG_A2BUS_OUT_INH_CB(WRITELINE(apple2gs_state, a2bus_inh_w))
- MCFG_A2BUS_ONBOARD_ADD("a2bus", "sl0", A2BUS_LANG, NULL)
- MCFG_A2BUS_SLOT_ADD("a2bus", "sl1", apple2_cards, NULL)
- MCFG_A2BUS_SLOT_ADD("a2bus", "sl2", apple2_cards, NULL)
- MCFG_A2BUS_SLOT_ADD("a2bus", "sl3", apple2_cards, NULL)
- MCFG_A2BUS_SLOT_ADD("a2bus", "sl4", apple2_cards, NULL)
- MCFG_A2BUS_SLOT_ADD("a2bus", "sl5", apple2_cards, NULL)
- MCFG_A2BUS_SLOT_ADD("a2bus", "sl6", apple2_cards, NULL)
- MCFG_A2BUS_SLOT_ADD("a2bus", "sl7", apple2_cards, NULL)
-
- MCFG_IWM_ADD("fdc", apple2_fdc_interface)
-
- /* SCC */
- MCFG_DEVICE_ADD("scc", SCC8530, APPLE2GS_14M/2)
-
- MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(apple2gs_floppy525_floppy_interface,15,16)
- MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADDITIONAL_ADD(apple2gs_floppy35_floppy_interface)
-
- MCFG_NVRAM_ADD_0FILL("nvram")
-
- /* internal ram */
- MCFG_RAM_ADD(RAM_TAG)
- MCFG_RAM_DEFAULT_SIZE("2M") // 1M on board + 1M in the expansion slot was common for ROM 03
- MCFG_RAM_EXTRA_OPTIONS("1M,3M,4M,5M,6M,7M,8M")
- MCFG_RAM_DEFAULT_VALUE(0x00)
-
- MCFG_SOFTWARE_LIST_ADD("flop35_list","apple2gs")
- MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("flop525_list", "apple2")
-MACHINE_CONFIG_END
-
-static MACHINE_CONFIG_DERIVED( apple2gsr1, apple2gs )
- MCFG_MACHINE_START_OVERRIDE(apple2gs_state, apple2gsr1 )
-
- #if RUN_ADB_MICRO
- MCFG_CPU_REPLACE(ADBMICRO_TAG, M50740, XTAL_3_579545MHz)
- MCFG_M5074X_PORT0_READ_CALLBACK(READ8(apple2gs_state, adbmicro_p0_in))
- MCFG_M5074X_PORT0_WRITE_CALLBACK(WRITE8(apple2gs_state, adbmicro_p0_out))
- MCFG_M5074X_PORT1_READ_CALLBACK(READ8(apple2gs_state, adbmicro_p1_in))
- MCFG_M5074X_PORT1_WRITE_CALLBACK(WRITE8(apple2gs_state, adbmicro_p1_out))
- MCFG_M5074X_PORT2_READ_CALLBACK(READ8(apple2gs_state, adbmicro_p2_in))
- MCFG_M5074X_PORT2_WRITE_CALLBACK(WRITE8(apple2gs_state, adbmicro_p2_out))
- MCFG_M5074X_PORT3_READ_CALLBACK(READ8(apple2gs_state, adbmicro_p3_in))
- MCFG_M5074X_PORT3_WRITE_CALLBACK(WRITE8(apple2gs_state, adbmicro_p3_out))
- #endif
-
- MCFG_RAM_MODIFY(RAM_TAG)
- MCFG_RAM_DEFAULT_SIZE("1280K") // 256K on board + 1M in the expansion slot was common for ROM 01
- MCFG_RAM_EXTRA_OPTIONS("256K,512K,768K,1M,2M,3M,4M,5M,6M,7M,8M")
- MCFG_RAM_DEFAULT_VALUE(0x00)
-MACHINE_CONFIG_END
-
-/***************************************************************************
-
- Game driver(s)
-
-***************************************************************************/
-
-ROM_START(apple2gs)
- // M50740/50741 ADB MCU inside the IIgs system unit
- ROM_REGION(0x1000,M5074X_INTERNAL_ROM(ADBMICRO_TAG),0)
- ROM_LOAD( "341s0632-2.bin", 0x000000, 0x001000, CRC(e1c11fb0) SHA1(141d18c36a617ab9dce668445440d34354be0672) )
-
- // i8048 microcontroller inside the IIgs ADB Standard Keyboard
- ROM_REGION(0x400, "kmcu", 0)
- // from early-production ROM 00 Woz Limited Edition IIgs. keyboard "Part Number 658-4081 825-1301-A"
- // ROM is marked "NEC Japan 8626XD 341-0232A 543" so 26th week of 1986
- ROM_LOAD( "341-0232a.bin", 0x000000, 0x000400, CRC(6a158b9f) SHA1(e8744180075182849d431fd8023a52a062a6da76) )
- // from later non-Woz ROM 01. keyboard "Model A9M0330"
- // ROM is marked "NEC Japan 8806HD 8048HC610 341-0124-A (c) APPLE 87" so 6th week of 1988
- ROM_LOAD( "341-0124a.bin", 0x000000, 0x000400, CRC(2a3576bf) SHA1(58fbf770d3801a02d0944039829f9241b5279013) )
-
- 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_LOAD("341-0737", 0x0000, 0x20000, CRC(8d410067) SHA1(c0f4704233ead14cb8e1e8a68fbd7063c56afd27)) /* Needs verification; 341-0737: IIgs ROM03 FC-FD */
- ROM_LOAD("341-0748", 0x20000, 0x20000, CRC(d4c50550) SHA1(2784cdd7ac7094b3e494409db3e72b4e6d2d9e81)) /* Needs verification; 341-0748: IIgs ROM03 FE-FF */
-
- ROM_REGION(0x20000, "es5503", ROMREGION_ERASE00)
-
- // temporary: use IIe enhanced keyboard decode ROM
- ROM_REGION( 0x800, "keyboard", 0 )
- ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) )
-ROM_END
-
-ROM_START(apple2gsr3p)
- ROM_REGION(0x1000,M5074X_INTERNAL_ROM(ADBMICRO_TAG),0)
- ROM_LOAD( "341s0632-2.bin", 0x000000, 0x001000, CRC(e1c11fb0) SHA1(141d18c36a617ab9dce668445440d34354be0672) )
-
- ROM_REGION(0x400, "kmcu", 0)
- ROM_LOAD( "341-0232a.bin", 0x000000, 0x000400, CRC(6a158b9f) SHA1(e8744180075182849d431fd8023a52a062a6da76) )
- ROM_LOAD( "341-0124a.bin", 0x000000, 0x000400, CRC(2a3576bf) SHA1(58fbf770d3801a02d0944039829f9241b5279013) )
-
- 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_LOAD("341-0728", 0x0000, 0x20000, NO_DUMP) /* 341-0728: IIgs ROM03 prototype FC-FD */
- ROM_LOAD("341-0729", 0x20000, 0x20000, NO_DUMP) /* 341-0729: IIgs ROM03 prototype FE-FF */
-
- ROM_REGION(0x20000, "es5503", ROMREGION_ERASE00)
-
- // temporary: use IIe enhanced keyboard decode ROM
- ROM_REGION( 0x800, "keyboard", 0 )
- ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) )
-ROM_END
-
-ROM_START(apple2gsr3lp)
- ROM_REGION(0x1000,M5074X_INTERNAL_ROM(ADBMICRO_TAG),0)
- ROM_LOAD( "341s0632-2.bin", 0x000000, 0x001000, CRC(e1c11fb0) SHA1(141d18c36a617ab9dce668445440d34354be0672) )
-
- ROM_REGION(0x400, "kmcu", 0)
- ROM_LOAD( "341-0232a.bin", 0x000000, 0x000400, CRC(6a158b9f) SHA1(e8744180075182849d431fd8023a52a062a6da76) )
- ROM_LOAD( "341-0124a.bin", 0x000000, 0x000400, CRC(2a3576bf) SHA1(58fbf770d3801a02d0944039829f9241b5279013) )
-
- 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_LOAD("341-0737", 0x0000, 0x20000, CRC(8d410067) SHA1(c0f4704233ead14cb8e1e8a68fbd7063c56afd27)) /* 341-0737: IIgs ROM03 FC-FD */
- ROM_LOAD("341-0749", 0x20000, 0x20000, NO_DUMP) /* 341-0749: unknown ?post? ROM03 IIgs prototype? FE-FF */
-
- ROM_REGION(0x20000, "es5503", ROMREGION_ERASE00)
-
- // temporary: use IIe enhanced keyboard decode ROM
- ROM_REGION( 0x800, "keyboard", 0 )
- ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) )
-ROM_END
-
-ROM_START(apple2gsr1)
- ROM_REGION(0xc00,M5074X_INTERNAL_ROM(ADBMICRO_TAG),0)
- ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) )
-
- ROM_REGION(0x400, "kmcu", 0)
- ROM_LOAD( "341-0232a.bin", 0x000000, 0x000400, CRC(6a158b9f) SHA1(e8744180075182849d431fd8023a52a062a6da76) )
- ROM_LOAD( "341-0124a.bin", 0x000000, 0x000400, CRC(2a3576bf) SHA1(58fbf770d3801a02d0944039829f9241b5279013) )
-
- ROM_REGION(0x1000,"gfx1",0)
- ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) /* need label/part number */
-
- ROM_REGION(0x20000,"maincpu",0)
- ROM_LOAD("342-0077-b", 0x0000, 0x20000, CRC(42f124b0) SHA1(e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37)) /* 342-0077-B: IIgs ROM01 */
-
- ROM_REGION(0x20000, "es5503", ROMREGION_ERASE00)
-
- // temporary: use IIe enhanced keyboard decode ROM
- ROM_REGION( 0x800, "keyboard", 0 )
- ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) )
-ROM_END
-
-ROM_START(apple2gsr0)
- ROM_REGION(0xc00,M5074X_INTERNAL_ROM(ADBMICRO_TAG),0)
- ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) )
-
- ROM_REGION(0x400, "kmcu", 0)
- ROM_LOAD( "341-0232a.bin", 0x000000, 0x000400, CRC(6a158b9f) SHA1(e8744180075182849d431fd8023a52a062a6da76) )
- ROM_LOAD( "341-0124a.bin", 0x000000, 0x000400, CRC(2a3576bf) SHA1(58fbf770d3801a02d0944039829f9241b5279013) )
-
- ROM_REGION(0x1000,"gfx1",0)
- ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89))
-
- ROM_REGION(0x20000,"maincpu",0)
- /* Should these roms really be split like this? according to the unofficial apple rom list, IIgs ROM00 was on one rom labeled 342-0077-A */
- ROM_LOAD("rom0a.bin", 0x0000, 0x8000, CRC(9cc78238) SHA1(0ea82e10720a01b68722ab7d9f66efec672a44d3))
- ROM_LOAD("rom0b.bin", 0x8000, 0x8000, CRC(8baf2a79) SHA1(91beeb11827932fe10475252d8036a63a2edbb1c))
- ROM_LOAD("rom0c.bin", 0x10000, 0x8000, CRC(94c32caa) SHA1(4806d50d676b06f5213b181693fc1585956b98bb))
- ROM_LOAD("rom0d.bin", 0x18000, 0x8000, CRC(200a15b8) SHA1(0c2890bb169ead63369738bbd5f33b869f24c42a))
-
- ROM_REGION(0x20000, "es5503", ROMREGION_ERASE00)
-
- // temporary: use IIe enhanced keyboard decode ROM
- ROM_REGION( 0x800, "keyboard", 0 )
- ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) )
-ROM_END
-
-ROM_START(apple2gsr0p) // 6/19/1986 Cortland prototype
- ROM_REGION(0xc00,M5074X_INTERNAL_ROM(ADBMICRO_TAG),0)
- ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) )
-
- ROM_REGION(0x400, "kmcu", 0)
- ROM_LOAD( "341-0232a.bin", 0x000000, 0x000400, CRC(6a158b9f) SHA1(e8744180075182849d431fd8023a52a062a6da76) )
- ROM_LOAD( "341-0124a.bin", 0x000000, 0x000400, CRC(2a3576bf) SHA1(58fbf770d3801a02d0944039829f9241b5279013) )
-
- ROM_REGION(0x1000,"gfx1",0)
- ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89))
-
- ROM_REGION(0x20000,"maincpu",0)
- ROM_LOAD( "rombf.bin", 0x000000, 0x020000, CRC(ab04fedf) SHA1(977589a17553956d583a21020080a39dd396df5c) )
-
- ROM_REGION(0x20000, "es5503", ROMREGION_ERASE00)
-
- // temporary: use IIe enhanced keyboard decode ROM
- ROM_REGION( 0x800, "keyboard", 0 )
- ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) )
-ROM_END
-
-ROM_START(apple2gsr0p2) // 3/10/1986 Cortland prototype, boots as "Apple //'ing - Alpha 2.0"
- ROM_REGION(0xc00,M5074X_INTERNAL_ROM(ADBMICRO_TAG),0)
- ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) )
-
- ROM_REGION(0x400, "kmcu", 0)
- ROM_LOAD( "341-0232a.bin", 0x000000, 0x000400, CRC(6a158b9f) SHA1(e8744180075182849d431fd8023a52a062a6da76) )
- ROM_LOAD( "341-0124a.bin", 0x000000, 0x000400, CRC(2a3576bf) SHA1(58fbf770d3801a02d0944039829f9241b5279013) )
-
- ROM_REGION(0x1000,"gfx1",0)
- ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89))
-
- ROM_REGION(0x20000,"maincpu",0)
- ROM_LOAD( "apple iigs alpha rom 2.0 19860310.bin", 0x000000, 0x020000, CRC(a47d275f) SHA1(c5836adcfc8be69c7351b84afa94c814e8d92b81) )
-
- ROM_REGION(0x20000, "es5503", ROMREGION_ERASE00)
-
- // temporary: use IIe enhanced keyboard decode ROM
- ROM_REGION( 0x800, "keyboard", 0 )
- ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) )
-ROM_END
-
-/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1989, apple2gs, 0, apple2, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03)", MACHINE_SUPPORTS_SAVE )
-COMP( 198?, apple2gsr3p, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 prototype)", MACHINE_NOT_WORKING )
-COMP( 1989, apple2gsr3lp, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 late prototype?)", MACHINE_NOT_WORKING )
-COMP( 1987, apple2gsr1, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM01)", MACHINE_SUPPORTS_SAVE )
-COMP( 1986, apple2gsr0, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00)", MACHINE_SUPPORTS_SAVE )
-COMP( 1986, apple2gsr0p,apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 6/19/1986)", MACHINE_SUPPORTS_SAVE )
-COMP( 1986, apple2gsr0p2,apple2gs,0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 3/10/1986)", MACHINE_SUPPORTS_SAVE )