diff --git a/hash/apple2_flop_misc.xml b/hash/apple2_flop_misc.xml
index f7a0b9fcf04..b030248391f 100644
--- a/hash/apple2_flop_misc.xml
+++ b/hash/apple2_flop_misc.xml
@@ -49,6 +49,25 @@ Generated by SLIST 0.2.1
+
+ Apple II Diagnostic Disk (version 3.1)(800K 3.5")
+ 1991
+ Apple Computer
+
+
+
+
+
+
+
+
+
+
AppleWorks (Version 1.2, USA)
1983
diff --git a/src/mame/apple/apple2gs.cpp b/src/mame/apple/apple2gs.cpp
index f22e1552c14..e9f4b85c73b 100644
--- a/src/mame/apple/apple2gs.cpp
+++ b/src/mame/apple/apple2gs.cpp
@@ -1591,6 +1591,9 @@ u8 apple2gs_state::c000_r(offs_t offset)
case 0x29: // NEWVIDEO
return m_video->get_newvideo();
+ case 0x2b: // LANGSEL
+ return m_video->get_GS_langsel();
+
case 0x2d: // SLOTROMSEL
return m_slotromsel;
@@ -1946,6 +1949,10 @@ void apple2gs_state::c000_w(offs_t offset, u8 data)
m_video->set_newvideo(data);
break;
+ case 0x2b: // LANGSEL
+ m_video->set_GS_langsel(data);
+ break;
+
case 0x2d: // SLOTROMSEL
m_slotromsel = data;
break;
@@ -3931,8 +3938,8 @@ ROM_START(apple2gs)
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)) /* need label/part number */
+ ROM_REGION(0x4000,"gfx1",0)
+ ROM_LOAD ( "megaii.chr", 0x0000, 0x4000, BAD_DUMP CRC(ef0bfc11) SHA1(c068f3d02d442a8a38121d42318e9a962ee8913e)) /* need label/part number */
ROM_REGION(0x80000,"maincpu",0)
// 341-0728 is the MASK rom version while 341-0737 is the EPROM version - SAME data.
@@ -3946,8 +3953,8 @@ ROM_START(apple2gsr3p)
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)) /* need label/part number */
+ ROM_REGION(0x4000,"gfx1",0)
+ ROM_LOAD ( "megaii.chr", 0x0000, 0x4000, BAD_DUMP CRC(ef0bfc11) SHA1(c068f3d02d442a8a38121d42318e9a962ee8913e)) /* need label/part number */
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 */
@@ -3958,8 +3965,8 @@ ROM_START(apple2gsr1)
ROM_REGION(0xc00, "adbmicro", 0)
ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) )
- ROM_REGION(0x1000,"gfx1",0)
- ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) /* need label/part number */
+ ROM_REGION(0x4000,"gfx1",0)
+ ROM_LOAD ( "megaii.chr", 0x0000, 0x4000, BAD_DUMP CRC(ef0bfc11) SHA1(c068f3d02d442a8a38121d42318e9a962ee8913e)) /* need label/part number */
ROM_REGION(0x80000,"maincpu",0)
ROM_LOAD("342-0077-b", 0x20000, 0x20000, CRC(42f124b0) SHA1(e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37)) /* 342-0077-B: IIgs ROM01 */
@@ -3969,8 +3976,8 @@ ROM_START(apple2gsr0)
ROM_REGION(0xc00, "adbmicro", 0)
ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) )
- ROM_REGION(0x1000,"gfx1",0)
- ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89))
+ ROM_REGION(0x4000,"gfx1",0)
+ ROM_LOAD ( "megaii.chr", 0x0000, 0x4000, BAD_DUMP CRC(ef0bfc11) SHA1(c068f3d02d442a8a38121d42318e9a962ee8913e)) /* need label/part number */
ROM_REGION(0x80000,"maincpu",0)
ROM_LOAD("342-0077-a", 0x20000, 0x20000, CRC(dfbdd97b) SHA1(ff0c245dd0732ec4413a934fd80efc2defd8a8e3) ) /* 342-0077-A: IIgs ROM00 */
@@ -3980,8 +3987,8 @@ ROM_START(apple2gsr0p) // 6/19/1986 Cortland prototype
ROM_REGION(0xc00, "adbmicro", 0)
ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) )
- ROM_REGION(0x1000,"gfx1",0)
- ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89))
+ ROM_REGION(0x4000,"gfx1",0)
+ ROM_LOAD ( "megaii.chr", 0x0000, 0x4000, BAD_DUMP CRC(ef0bfc11) SHA1(c068f3d02d442a8a38121d42318e9a962ee8913e)) /* need label/part number */
ROM_REGION(0x80000,"maincpu",0)
ROM_LOAD( "rombf.bin", 0x020000, 0x020000, CRC(ab04fedf) SHA1(977589a17553956d583a21020080a39dd396df5c) )
@@ -3991,8 +3998,8 @@ ROM_START(apple2gsr0p2) // 3/10/1986 Cortland prototype, boots as "Apple //'ing
ROM_REGION(0xc00, "adbmicro", 0)
ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) )
- ROM_REGION(0x1000,"gfx1",0)
- ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89))
+ ROM_REGION(0x4000,"gfx1",0)
+ ROM_LOAD ( "megaii.chr", 0x0000, 0x4000, BAD_DUMP CRC(ef0bfc11) SHA1(c068f3d02d442a8a38121d42318e9a962ee8913e)) /* need label/part number */
ROM_REGION(0x80000,"maincpu",0)
ROM_LOAD( "apple iigs alpha rom 2.0 19860310.bin", 0x020000, 0x020000, CRC(a47d275f) SHA1(c5836adcfc8be69c7351b84afa94c814e8d92b81) )
@@ -4003,8 +4010,8 @@ ROM_START(apple2gsmt)
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(0x4000, "gfx1", 0)
+ ROM_LOAD ( "megaii.chr", 0x0000, 0x4000, BAD_DUMP CRC(ef0bfc11) SHA1(c068f3d02d442a8a38121d42318e9a962ee8913e)) /* need label/part number */
ROM_REGION(0x80000, "maincpu", 0)
// The Mark Twain ROM is 512K, with address bit 16 inverted (same as ROM 3).
diff --git a/src/mame/apple/apple2video.cpp b/src/mame/apple/apple2video.cpp
index d6e5692ceef..c3a735b17ab 100644
--- a/src/mame/apple/apple2video.cpp
+++ b/src/mame/apple/apple2video.cpp
@@ -76,6 +76,7 @@ void a2_video_device::device_start()
save_item(NAME(m_GSbg));
save_item(NAME(m_GSborder));
save_item(NAME(m_newvideo));
+ save_item(NAME(m_GS_langsel));
save_item(NAME(m_monochrome));
save_item(NAME(m_rgbmode));
save_item(NAME(m_shr_palette));
@@ -387,10 +388,6 @@ unsigned a2_video_device::get_text_character(uint32_t code, int row)
}
}
}
- else if (Model == model::IIGS)
- {
- code |= 0x100;
- }
else
{
if ((code >= 0x60) && (code <= 0x7f))
@@ -403,6 +400,10 @@ unsigned a2_video_device::get_text_character(uint32_t code, int row)
{
code |= get_iie_langsw() * 0x100;
}
+ else if (Model == model::IIGS)
+ {
+ code |= get_GS_language() * 0x100;
+ }
}
else // original II and II Plus
{
diff --git a/src/mame/apple/apple2video.h b/src/mame/apple/apple2video.h
index 91aeeaf3978..02b12e51018 100644
--- a/src/mame/apple/apple2video.h
+++ b/src/mame/apple/apple2video.h
@@ -55,6 +55,11 @@ public:
void set_GS_border(u8 border) { m_GSborder = border; }
const u8 get_newvideo() { return m_newvideo; }
void set_newvideo(u8 newvideo) { m_newvideo = newvideo; }
+ const u8 get_GS_langsel() { return m_GS_langsel; }
+ const u8 get_GS_language() { return (m_GS_langsel >> 5) & 0x07; }
+ const bool is_pal_video_mode() { return (m_GS_langsel >> 4) & 0x01; }
+ const bool get_language_switch(){ return (m_GS_langsel >> 3) & 0x01; }
+ void set_GS_langsel(u8 langsel) { m_GS_langsel = langsel; }
void set_SHR_color(u8 color, u32 rgb) { m_shr_palette[color] = rgb; }
void set_GS_border_color(u8 color, u32 rgb) { m_GSborder_colors[color] = rgb; }
@@ -123,7 +128,7 @@ private:
bool m_an2 = false;
bool m_80store = false;
bool m_monohgr = false;
- u8 m_GSfg = 0, m_GSbg = 0, m_GSborder = 0, m_newvideo = 0, m_monochrome = 0, m_rgbmode = 0;
+ u8 m_GSfg = 0, m_GSbg = 0, m_GSborder = 0, m_newvideo = 0, m_GS_langsel = 0, m_monochrome = 0, m_rgbmode = 0;
u8 m_iie_langsw = 0; // language switch/modification on IIe/IIc/IIc+ and clones
optional_ioport m_vidconfig;
};