@@ -140,6 +140,7 @@ Ctrl+Mode sets up default keyboard macros (most of which use Ctrl+Shift).
140140
141141#include " apple2video.h"
142142#include " apple2common.h"
143+ #include " mpf3kbd.h"
143144#include " prav8ckb.h"
144145#include " spectred_kbd.h"
145146
@@ -156,6 +157,7 @@ Ctrl+Mode sets up default keyboard macros (most of which use Ctrl+Shift).
156157#include " machine/mos6551.h"
157158#include " machine/ram.h"
158159#include " machine/timer.h"
160+ #include " sound/ay8910.h"
159161#include " sound/spkrdev.h"
160162
161163#include " bus/a2bus/cards.h"
@@ -233,6 +235,7 @@ class apple2e_state : public driver_device
233235 m_a2common (*this , " a2common" ),
234236 m_cecbanks (*this , " cecexp" ),
235237 m_ay3600 (*this , " ay3600" ),
238+ m_mpf3_kbd (*this , " mpf3kbd" ),
236239 m_prav8c_kbd (*this , " kbd" ),
237240 m_video (*this , A2_VIDEO_TAG ),
238241 m_a2bus (*this , A2_BUS_TAG ),
@@ -271,7 +274,8 @@ class apple2e_state : public driver_device
271274 m_printer_out (*this , " laserprnout" ),
272275 m_kbdcpu (*this , " kbdcpu" ),
273276 m_kbdlatch (*this , " kbdlatch" ),
274- m_kbdmcu (*this , " kbdmcu" )
277+ m_kbdmcu (*this , " kbdmcu" ),
278+ m_psg (*this , " psg" )
275279 {
276280 m_isiic = false ;
277281 m_isiicplus = false ;
@@ -282,6 +286,7 @@ class apple2e_state : public driver_device
282286 m_isace2200 = false ;
283287 m_ace2200_axxx_bank = false ;
284288 m_isspectred = false ;
289+ m_mpf3_altcode = false ;
285290 m_pal = false ;
286291 m_cur_floppy = nullptr ;
287292 m_devsel = 0 ;
@@ -301,6 +306,7 @@ class apple2e_state : public driver_device
301306 required_device<apple2_common_device> m_a2common;
302307 optional_memory_region m_cecbanks;
303308 optional_device<ay3600_device> m_ay3600;
309+ optional_device<mpf3kbd_device> m_mpf3_kbd;
304310 optional_device<prav8ckb_device> m_prav8c_kbd;
305311 required_device<a2_video_device> m_video;
306312 required_device<a2bus_device> m_a2bus;
@@ -328,6 +334,7 @@ class apple2e_state : public driver_device
328334 optional_device<cpu_device> m_kbdcpu;
329335 optional_device<ls259_device> m_kbdlatch;
330336 optional_device<mcs48_cpu_device> m_kbdmcu;
337+ optional_device<ay8912_device> m_psg;
331338
332339 // align VBL to the end of active video
333340 static constexpr int HPOS_VBL = 40 * 14 ;
@@ -421,6 +428,7 @@ class apple2e_state : public driver_device
421428 void reset_w (int state);
422429 void prav8c_kdata_w (u8 data);
423430 void prav8c_kstrb_w (int state);
431+ void mpf3_kbdout_w (u8 data);
424432 void spectred_kbdout_w (u8 data);
425433 u8 memexp_r (offs_t offset);
426434 void memexp_w (offs_t offset, u8 data);
@@ -449,7 +457,7 @@ class apple2e_state : public driver_device
449457 void cec (machine_config &config) ATTR_COLD;
450458 void cecm (machine_config &config) ATTR_COLD;
451459 void cec2000 (machine_config &config) ATTR_COLD;
452- void mprof3 (machine_config &config) ATTR_COLD;
460+ void mpf3 (machine_config &config) ATTR_COLD;
453461 void apple2e (machine_config &config) ATTR_COLD;
454462 void apple2epal (machine_config &config) ATTR_COLD;
455463 void apple2c (machine_config &config) ATTR_COLD;
@@ -464,6 +472,7 @@ class apple2e_state : public driver_device
464472 void apple2c_memexp_map (address_map &map) ATTR_COLD;
465473 void base_map (address_map &map) ATTR_COLD;
466474 void laser128_map (address_map &map) ATTR_COLD;
475+ void mpf3_map (address_map &map) ATTR_COLD;
467476 void ace500_map (address_map &map) ATTR_COLD;
468477 void ace2200_map (address_map &map) ATTR_COLD;
469478 void tk3000_keyb_map (address_map &map) ATTR_COLD;
@@ -518,7 +527,9 @@ class apple2e_state : public driver_device
518527 u16 m_ace500rombank;
519528
520529 bool m_isspectred;
521- u8 m_spectred_kbdout, m_spectred_kbdshift, m_spectred_kbctrl;
530+ u8 m_kbdout, m_kbdshift, m_spectred_kbctrl;
531+
532+ bool m_mpf3_altcode;
522533
523534 bool m_has_laser_mouse;
524535 bool m_laser_fdc_on;
@@ -1116,8 +1127,8 @@ void apple2e_state::machine_start()
11161127 m_prav8c_kdata = 0 ;
11171128 m_prav8c_kstrb = true ;
11181129
1119- m_spectred_kbdout = 0xf0 ;
1120- m_spectred_kbdshift = 0 ;
1130+ m_kbdout = 0xf0 ;
1131+ m_kbdshift = 0 ;
11211132 m_spectred_kbctrl = 0 ;
11221133
11231134 // setup save states
@@ -1138,11 +1149,14 @@ void apple2e_state::machine_start()
11381149 save_item (NAME (m_prav8c_kstrb));
11391150 save_item (NAME (m_prav8c_c060));
11401151 }
1141- if (m_isspectred)
1152+ if (m_isspectred || m_mpf3_kbd. found () )
11421153 {
1143- save_item (NAME (m_spectred_kbdout));
1144- save_item (NAME (m_spectred_kbdshift));
1145- save_item (NAME (m_spectred_kbctrl));
1154+ save_item (NAME (m_kbdout));
1155+ save_item (NAME (m_kbdshift));
1156+ if (m_isspectred)
1157+ save_item (NAME (m_spectred_kbctrl));
1158+ if (m_mpf3_kbd.found ())
1159+ save_item (NAME (m_mpf3_altcode));
11461160 }
11471161 save_item (NAME (m_inh_slot));
11481162 save_item (NAME (m_inh_bank));
@@ -1469,6 +1483,9 @@ void apple2e_state::reset_w(int state)
14691483 if (m_kbdmcu.found ())
14701484 m_kbdmcu->set_input_line (INPUT_LINE_RESET , ASSERT_LINE );
14711485
1486+ if (m_psg.found ())
1487+ m_psg->reset ();
1488+
14721489 lcrom_update ();
14731490 auxbank_update ();
14741491 update_slotrom_banks ();
@@ -2123,8 +2140,18 @@ u8 apple2e_state::c000_r(offs_t offset)
21232140 case 0x1f : // read 80COL
21242141 return (m_video->get_80col () ? 0x80 : 0x00 ) | m_transchar;
21252142
2143+ case 0x22 :
2144+ if (m_mpf3_kbd.found ())
2145+ return (m_ace2200_axxx_bank ? 0x80 : 0 ) | uFloatingBus7;
2146+ break ;
2147+
2148+ case 0x25 :
2149+ if (m_mpf3_kbd.found ())
2150+ return (m_sysconfig->read () & 0x40 ) << 1 | uFloatingBus7;
2151+ break ;
2152+
21262153 case 0x26 : // Ace 2x00 DIP switches
2127- if (m_isace2200)
2154+ if (m_isace2200 || m_mpf3_kbd. found () )
21282155 return (m_sysconfig->read () & 0x80 ) | uFloatingBus7;
21292156 break ;
21302157
@@ -2139,6 +2166,8 @@ u8 apple2e_state::c000_r(offs_t offset)
21392166 }
21402167 return rv;
21412168 }
2169+ else if (m_mpf3_kbd.found ())
2170+ return (m_mpf3_altcode ? 0x80 : 0 ) | uFloatingBus7;
21422171 break ;
21432172
21442173 case 0x60 : // cassette in, inverted
@@ -2154,6 +2183,8 @@ u8 apple2e_state::c000_r(offs_t offset)
21542183 case 0x69 :
21552184 if (m_prav8c_kbd.found ())
21562185 return (((m_gameio->has_sw0 () && m_gameio->sw0_r ()) || m_prav8c_kbd->sw0_r ()) ? 0x80 : 0 ) | (m_prav8c_c060 & 0x40 ) | (uFloatingBus7 & 0x3f );
2186+ else if (m_mpf3_kbd.found ())
2187+ return (((m_gameio->has_sw0 () && m_gameio->sw0_r ()) || m_mpf3_kbd->pb0_r ()) ? 0x80 : 0 ) | uFloatingBus7;
21572188 else if (m_isspectred)
21582189 return (((m_gameio->has_sw0 () && m_gameio->sw0_r ()) || BIT (m_spectred_kbctrl, 0 )) ? 0x80 : 0 ) | uFloatingBus7;
21592190 else
@@ -2163,6 +2194,8 @@ u8 apple2e_state::c000_r(offs_t offset)
21632194 case 0x6a :
21642195 if (m_prav8c_kbd.found ())
21652196 return (((m_gameio->has_sw1 () && m_gameio->sw1_r ()) || m_prav8c_kbd->sw1_r ()) ? 0x80 : 0 ) | (m_prav8c_c060 & 0x40 ) | (uFloatingBus7 & 0x3f );
2197+ else if (m_mpf3_kbd.found ())
2198+ return (((m_gameio->has_sw1 () && m_gameio->sw1_r ()) || m_mpf3_kbd->pb1_r ()) ? 0x80 : 0 ) | uFloatingBus7;
21662199 else if (m_isspectred)
21672200 return (((m_gameio->has_sw1 () && m_gameio->sw1_r ()) || BIT (m_spectred_kbctrl, 1 )) ? 0x80 : 0 ) | uFloatingBus7;
21682201 else
@@ -2612,7 +2645,7 @@ void apple2e_state::c000_w(offs_t offset, u8 data)
26122645
26132646 case 0x70 : case 0x71 : case 0x72 : case 0x73 : case 0x74 : case 0x75 : case 0x76 : case 0x77 :
26142647 case 0x78 : case 0x79 : case 0x7a : case 0x7b : case 0x7c : case 0x7d : case 0x7e : case 0x7f :
2615- if (m_isace2200)
2648+ if (m_isace2200 || m_mpf3_kbd. found () )
26162649 {
26172650 if (offset == 0x78 )
26182651 {
@@ -3542,6 +3575,18 @@ void apple2e_state::base_map(address_map &map)
35423575 m_lcbank[5 ](0x0d000 , 0x1ffff ).rom ().region (" maincpu" , 0xd000 ).w (FUNC (apple2e_state::lc_w));
35433576}
35443577
3578+ void apple2e_state::mpf3_map (address_map &map)
3579+ {
3580+ base_map (map);
3581+
3582+ m_4000bank[0 ](0x4000 , 0xbfff ).rw (FUNC (apple2e_state::ram4000_ace2200_r), FUNC (apple2e_state::ram4000_w));
3583+ map (0xc075 , 0xc075 ).r (m_psg, FUNC (ay8912_device::data_r));
3584+ map (0xc076 , 0xc077 ).w (m_psg, FUNC (ay8912_device::data_address_w));
3585+
3586+ // map(0xc090, 0xc093).w(FUNC(apple2e_state::laserprn_w));
3587+ // map(0xc1c1, 0xc1c1).r(FUNC(apple2e_state::franklin_busy_r));
3588+ }
3589+
35453590void apple2e_state::apple2c_map (address_map &map)
35463591{
35473592 base_map (map);
@@ -3718,30 +3763,51 @@ void apple2e_state::prav8c_kstrb_w(int state)
37183763 m_prav8c_kstrb = bool (state);
37193764}
37203765
3766+ void apple2e_state::mpf3_kbdout_w (u8 data)
3767+ {
3768+ if (BIT (~m_kbdout & data, 6 ))
3769+ {
3770+ // Latch bit 7 into strobe
3771+ if (BIT (m_kbdout, 7 ))
3772+ {
3773+ m_transchar = m_kbdshift & 0x7f ;
3774+ m_mpf3_altcode = BIT (m_kbdshift, 7 );
3775+ m_strobe = 0x80 ;
3776+ }
3777+ }
3778+
3779+ if (BIT (~m_kbdout & data, 5 ))
3780+ m_kbdshift = (m_kbdout & 0x80 ) | (m_kbdshift >> 1 );
3781+
3782+ m_anykeydown = BIT (data, 4 );
3783+
3784+ m_kbdout = data;
3785+ }
3786+
37213787void apple2e_state::spectred_kbdout_w (u8 data)
37223788{
3723- if (BIT (data, 7 ) && !BIT (m_spectred_kbdout , 7 ))
3789+ if (BIT (data, 7 ) && !BIT (m_kbdout , 7 ))
37243790 {
3725- m_transchar = m_spectred_kbdshift & 0x7f ;
3791+ m_transchar = m_kbdshift & 0x7f ;
37263792 m_strobe = 0x80 ;
37273793 }
37283794
3729- if (BIT (data, 4 ) && !BIT (m_spectred_kbdout , 4 ))
3795+ if (BIT (data, 4 ) && !BIT (m_kbdout , 4 ))
37303796 {
3731- m_spectred_kbctrl = m_spectred_kbdshift & 0x0f ;
3797+ m_spectred_kbctrl = m_kbdshift & 0x0f ;
37323798 m_anykeydown = BIT (m_spectred_kbctrl, 2 );
37333799 reset_w (!BIT (m_spectred_kbctrl, 3 ));
37343800 }
37353801
37363802 // Convert serial to parallel
3737- if (!BIT (data, 6 ) && BIT (m_spectred_kbdout , 6 ))
3803+ if (!BIT (data, 6 ) && BIT (m_kbdout , 6 ))
37383804 {
3739- m_spectred_kbdshift >>= 1 ;
3740- if (!BIT (m_spectred_kbdout , 5 ))
3741- m_spectred_kbdshift |= 0x80 ;
3805+ m_kbdshift >>= 1 ;
3806+ if (!BIT (m_kbdout , 5 ))
3807+ m_kbdshift |= 0x80 ;
37423808 }
37433809
3744- m_spectred_kbdout = data;
3810+ m_kbdout = data;
37453811}
37463812
37473813void apple2e_state::laser128_keybio_map (address_map &map)
@@ -4836,6 +4902,20 @@ static INPUT_PORTS_START( tk3000 )
48364902 PORT_CONFSETTING (0x40 , " DVORAK" )
48374903INPUT_PORTS_END
48384904
4905+ static INPUT_PORTS_START ( mpf3 )
4906+ PORT_INCLUDE( apple2_sysconfig_accel )
4907+
4908+ PORT_MODIFY(" a2_config" )
4909+ PORT_DIPNAME(0x40 , 0x40 , " 40/80 Columns" ) PORT_DIPLOCATION(" U55:1" )
4910+ PORT_DIPSETTING(0x40 , " 40 columns" )
4911+ PORT_DIPSETTING(0x00 , " Reserved" )
4912+ PORT_DIPNAME(0x80 , 0x00 , " Printer Type" ) PORT_DIPLOCATION(" U55:2" )
4913+ PORT_DIPSETTING(0x00 , " Epson/CP-80" )
4914+ PORT_DIPSETTING(0x80 , " C. Itoh" )
4915+ // S3: Channel 3 or 4 (NTSC)
4916+ // S4: 64K or 48K RAM
4917+ INPUT_PORTS_END
4918+
48394919static INPUT_PORTS_START( spectred )
48404920 PORT_INCLUDE( apple2_sysconfig_accel )
48414921
@@ -5286,11 +5366,24 @@ void apple2e_state::apple2epal(machine_config &config)
52865366 m_pal = true ;
52875367}
52885368
5289- void apple2e_state::mprof3 (machine_config &config)
5369+ void apple2e_state::mpf3 (machine_config &config)
52905370{
52915371 apple2e (config);
5292- /* internal ram */
5293- m_ram->set_default_size (" 128K" );
5372+ m_maincpu->set_addrmap (AS_PROGRAM , &apple2e_state::mpf3_map);
5373+
5374+ config.device_remove (" ay3600" );
5375+ config.device_remove (" repttmr" );
5376+
5377+ MPF3_KEYBOARD (config, m_mpf3_kbd);
5378+ m_mpf3_kbd->kbdout_callback ().set (FUNC (apple2e_state::mpf3_kbdout_w));
5379+ m_mpf3_kbd->reset_callback ().set (FUNC (apple2e_state::reset_w));
5380+
5381+ AY8912 (config, m_psg, A2BUS_7M_CLOCK / 8 ).add_route (ALL_OUTPUTS , " mono" , 0.2 );
5382+
5383+ // CENTRONICS(config, m_printer_conn, centronics_devices, "printer");
5384+ // m_printer_conn->busy_handler().set(FUNC(apple2e_state::busy_w));
5385+ // OUTPUT_LATCH(config, m_printer_out);
5386+ // m_printer_conn->set_output_latch(*m_printer_out);
52945387}
52955388
52965389void apple2e_state::apple2ee (machine_config &config)
@@ -5858,17 +5951,37 @@ ROM_START(apple2ees)
58585951 ROM_LOAD( " 341-0211-a.f12" , 0x000000 , 0x000800 , CRC (fac15d54) SHA1(abe019de22641b0647e829a1d4745759bdffe86a) )
58595952ROM_END
58605953
5861- ROM_START(mprof3 )
5862- ROM_REGION(0x2000 ," gfx1" ,0 )
5863- ROM_LOAD ( " mpf3.chr " , 0x0000 , 0x1000 ,CRC (2597bc19) SHA1(e114dcbb512ec24fb457248c1b53cbd78039ed20))
5954+ ROM_START(mpf3 )
5955+ ROM_REGION(0x2000 , " gfx1" , 0 )
5956+ ROM_LOAD( " rom_video_u20_2732.bin " , 0x0000 , 0x1000 , CRC (2597bc19) SHA1(e114dcbb512ec24fb457248c1b53cbd78039ed20))
58645957 ROM_RELOAD(0x1000 , 0x1000 )
58655958
5866- ROM_REGION(0x10000 ," maincpu" ,0 )
5867- ROM_LOAD ( " mpf3-cd.rom" , 0x0000 , 0x2000 , CRC (5b662e06) SHA1(aa0db775ca78986480829fcc10f00e57629e1a7c))
5868- ROM_LOAD ( " mpf3-ef.rom" , 0x2000 , 0x2000 , CRC (2c5e8b92) SHA1(befeb03e04b7c3ef36ef5829948a53880df85e92))
5869-
5870- ROM_REGION( 0x800 , " keyboard" , ROMREGION_ERASE00 )
5871- ROM_LOAD( " 342-0132-c.e12" , 0x000 , 0x800 , BAD_DUMP CRC (e47045f4) SHA1(12a2e718f5f4acd69b6c33a45a4a940b1440a481) ) // need to dump real mprof keyboard ROM
5959+ ROM_REGION(0x10000 , " maincpu" , ROMREGION_ERASE00 )
5960+ ROM_SYSTEM_BIOS(0 , " mos13" , " MOS 1.3" )
5961+ ROMX_LOAD(" rom_cd_u25_mos13_2764.bin" , 0x0000 , 0x2000 , CRC (fccc5c7d) SHA1(3f91af61576d15abeb71e6da39bdf6a29c01100d), ROM_BIOS(0 ))
5962+ ROMX_LOAD(" rom_ef_u26_mos13_2764.bin" , 0x2000 , 0x2000 , CRC (56afe670) SHA1(d83e109b121066bd529ef5d16ce9c94aaa28e5e3), ROM_BIOS(0 ))
5963+ ROMX_LOAD(" rom_ab_u24_mos13_2764.bin" , 0x4000 , 0x2000 , CRC (4c3ecb15) SHA1(4a8033ad51b205f01f2b5056d61822391c7548eb), ROM_BIOS(0 ))
5964+ ROM_SYSTEM_BIOS(1 , " rom312" , " ROM 3.1.2" )
5965+ ROMX_LOAD(" mpf3-cd.u25" , 0x0000 , 0x2000 , CRC (5b662e06) SHA1(aa0db775ca78986480829fcc10f00e57629e1a7c), ROM_BIOS(1 ))
5966+ ROMX_LOAD(" mpf3-ef.u26" , 0x2000 , 0x2000 , CRC (2c5e8b92) SHA1(befeb03e04b7c3ef36ef5829948a53880df85e92), ROM_BIOS(1 ))
5967+ ROMX_LOAD(" mpf3-ab.u24" , 0x4000 , 0x2000 , BAD_DUMP CRC (b265a0e0) SHA1(ff05093efa5de9d900f22206004b3cd064fa6a8a), ROM_BIOS(1 )) // needs proper dump (hacked from MOS13 AB ROM)
5968+ ROM_SYSTEM_BIOS(2 , " mos11" , " MOS 1.1" )
5969+ ROMX_LOAD(" rom_cd_u25_mos11_2764.bin" , 0x0000 , 0x2000 , CRC (3d507b48) SHA1(af3e0308396aefb6b633d653066bfdb2737ad6f4), ROM_BIOS(2 ))
5970+ ROMX_LOAD(" rom_ef_u26_mos11_2764.bin" , 0x2000 , 0x2000 , CRC (71b9783d) SHA1(5617b2a5ffe167aa4bf43dd7a24672b362a737ba), ROM_BIOS(2 ))
5971+ ROMX_LOAD(" rom_ab_u24_mos11_2764.bin" , 0x4000 , 0x2000 , CRC (304b62e0) SHA1(72cf1c86c048d554f9ae236e17e6f6dcb88d4de3), ROM_BIOS(2 ))
5972+ ROM_SYSTEM_BIOS(3 , " apple2e" , " Apple IIe" )
5973+ ROMX_LOAD(" rom_cd_u25_apple2e_2764.bin" , 0x0000 , 0x2000 , CRC (6a54e1aa) SHA1(9abe9e736bf77b4c73f30744ae63493d505a08cb), ROM_BIOS(3 ))
5974+ ROMX_LOAD(" rom_ef_u26_apple2e_2764.bin" , 0x2000 , 0x2000 , CRC (fc3d59d8) SHA1(8895a4b703f2184b673078f411f4089889b61c54), ROM_BIOS(3 ))
5975+
5976+ ROM_REGION(0x200 , " rompal" , 0 )
5977+ ROM_LOAD(" pal14l4cn_u29.bin" , 0x000 , 0x200 , CRC (c09ee203) SHA1(1bbdef7e032b6bf8cb89a7507dacdb86db37f650))
5978+
5979+ ROM_REGION(0x400 , " rampal" , 0 )
5980+ ROM_LOAD(" pal14l4cn_u30.bin" , 0x000 , 0x400 , CRC (6d914281) SHA1(17bff890159a10d001e81f20167bfd236273e554))
5981+
5982+ ROM_REGION(0x400 , " fdd" , 0 )
5983+ ROM_LOAD(" dm74s274_u10_fdd.bin" , 0x000 , 0x200 , CRC (cf528c37) SHA1(93284c284971d80ed90a6d843759f9650d347e03))
5984+ ROM_LOAD(" dm74s274_u7_fdd.bin" , 0x200 , 0x200 , CRC (c7e54371) SHA1(ec1b658cce2949c055973e774357bd8b891983c0))
58725985ROM_END
58735986
58745987ROM_START(apple2ee)
@@ -6556,7 +6669,7 @@ COMP( 1983, apple2ede, apple2e, 0, apple2epal, apple2ede, apple2e_st
65566669COMP( 1983 , apple2ese, apple2e, 0 , apple2epal, apple2ese, apple2e_state, empty_init, " Apple Computer" , " Apple //e (Sweden)" , MACHINE_SUPPORTS_SAVE )
65576670COMP( 1983 , apple2efr, apple2e, 0 , apple2epal, apple2efr, apple2e_state, empty_init, " Apple Computer" , " Apple //e (France)" , MACHINE_SUPPORTS_SAVE )
65586671COMP( 1983 , apple2ees, apple2e, 0 , apple2epal, apple2ees, apple2e_state, empty_init, " Apple Computer" , " Apple //e (Spain)" , MACHINE_SUPPORTS_SAVE )
6559- COMP( 1983 , mprof3 , apple2e, 0 , mprof3 , apple2e , apple2e_state, empty_init, " Multitech" , " Microprofessor III" , MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
6672+ COMP( 1983 , mpf3 , apple2e, 0 , mpf3 , mpf3 , apple2e_state, empty_init, " Multitech Industrial " , " MicroProfessor MPF- III" , MACHINE_NODEVICE_PRINTER | MACHINE_SUPPORTS_SAVE )
65606673COMP( 1985 , apple2ee, apple2e, 0 , apple2ee, apple2eus, apple2e_state, empty_init, " Apple Computer" , " Apple //e (enhanced)" , MACHINE_SUPPORTS_SAVE )
65616674COMP( 1985 , apple2eeuk, apple2e, 0 , apple2eepal, apple2euk, apple2e_state, empty_init, " Apple Computer" , " Apple //e (enhanced, UK)" , MACHINE_SUPPORTS_SAVE )
65626675COMP( 1985 , apple2eede, apple2e, 0 , apple2eepal, apple2ede, apple2e_state, empty_init, " Apple Computer" , " Apple //e (enhanced, Germany)" , MACHINE_SUPPORTS_SAVE )
0 commit comments