109
109
110
110
#include " bus/archimedes/econet/slot.h"
111
111
#include " bus/archimedes/podule/slot.h"
112
- // #include "bus/archimedes/test/slot.h"
113
112
#include " bus/centronics/ctronics.h"
114
113
#include " bus/centronics/spjoy.h"
115
114
#include " bus/econet/econet.h"
118
117
#include " bus/nscsi/devices.h"
119
118
#include " bus/rs232/rs232.h"
120
119
#include " cpu/arm/arm.h"
121
- #include " formats/acorn_dsk.h"
122
- #include " formats/apd_dsk.h"
123
- #include " formats/jfd_dsk.h"
124
- #include " formats/st_dsk.h"
125
120
#include " imagedev/floppy.h"
126
121
#include " imagedev/harddriv.h"
127
122
#include " machine/acorn_bmu.h"
144
139
#include " machine/wd33c9x.h"
145
140
#include " machine/z80scc.h"
146
141
142
+ #include " formats/acorn_dsk.h"
143
+ #include " formats/apd_dsk.h"
144
+ #include " formats/hxchfe_dsk.h"
145
+ #include " formats/jfd_dsk.h"
146
+ #include " formats/st_dsk.h"
147
+
147
148
#include " screen.h"
148
149
#include " softlist.h"
149
150
#include " speaker.h"
@@ -253,7 +254,6 @@ class aa310_state : public aabase_state
253
254
, m_fdc(*this , " fdc" )
254
255
, m_floppy(*this , " fdc:%u" , 0U )
255
256
// , m_hdc(*this, "hdc")
256
- // , m_test(*this, "test")
257
257
, m_centronics(*this , " centronics" )
258
258
, m_cent_data_out(*this , " cent_data_out" )
259
259
{ }
@@ -281,7 +281,6 @@ class aa310_state : public aabase_state
281
281
required_device<wd1772_device> m_fdc;
282
282
optional_device_array<floppy_connector, 4 > m_floppy;
283
283
// optional_device<hd63463_device> m_hdc;
284
- // optional_device<archimedes_test_slot_device> m_test;
285
284
required_device<centronics_device> m_centronics;
286
285
required_device<output_latch_device> m_cent_data_out;
287
286
};
@@ -333,7 +332,6 @@ class aa4000_state : public aabase_state
333
332
: aabase_state(mconfig, type, tag)
334
333
, m_i2cmem(*this ," i2cmem" )
335
334
, m_floppy(*this , " upc:fdc:%u" , 0U )
336
- // , m_test(*this, "test")
337
335
, m_ioeb_control(0 )
338
336
{ }
339
337
@@ -352,7 +350,6 @@ class aa4000_state : public aabase_state
352
350
void ioeb_w (offs_t offset, u8 data);
353
351
354
352
optional_device_array<floppy_connector, 4 > m_floppy;
355
- // required_device<archimedes_test_slot_device> m_test;
356
353
357
354
u8 m_ioeb_control;
358
355
@@ -1028,6 +1025,8 @@ INPUT_PORTS_END
1028
1025
void aabase_state::floppy_formats(format_registration &fr)
1029
1026
{
1030
1027
fr.add_pc_formats ();
1028
+ fr.add (FLOPPY_HFE_FORMAT);
1029
+ // fr.add(FLOPPY_HFE3_FORMAT);
1031
1030
// Archimedes formats
1032
1031
fr.add (FLOPPY_ACORN_ADFS_NEW_FORMAT);
1033
1032
fr.add (FLOPPY_APD_FORMAT);
@@ -1114,14 +1113,14 @@ void aa500_state::aa500(machine_config &config)
1114
1113
// m_ioc->gpio_r<2>().set("rtc", FUNC(pcf8573_device::min_r));
1115
1114
// m_ioc->gpio_r<3>().set("rtc", FUNC(pcf8573_device::sec_r));
1116
1115
m_ioc->gpio_r <4 >().set ([this ] { return m_selected_floppy ? m_selected_floppy->dskchg_r () : 1 ; });
1117
- // m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %d", machine().describe_context(), state); });
1116
+ // m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %d\n ", machine().describe_context(), state); });
1118
1117
1119
1118
ACORN_VIDC1 (config.replace (), m_vidc, 24_MHz_XTAL);
1120
1119
m_vidc->set_screen (" screen" );
1121
1120
m_vidc->vblank ().set (m_memc, FUNC (acorn_memc_device::vidrq_w));
1122
1121
m_vidc->sound_drq ().set (m_memc, FUNC (acorn_memc_device::sndrq_w));
1123
1122
1124
- // TODO: implement A500 keyboard, uses M6500/11 MCU
1123
+ // TODO: implement A500 keyboard, uses M6500/1 MCU
1125
1124
1126
1125
m_ram->set_default_size (" 4M" );
1127
1126
@@ -1208,9 +1207,9 @@ void aa310_state::aa310(machine_config &config)
1208
1207
m_ioc->gpio_w <0 >().set (" i2cmem" , FUNC (pcf8583_device::sda_w));
1209
1208
m_ioc->gpio_w <1 >().set (" i2cmem" , FUNC (pcf8583_device::scl_w));
1210
1209
m_ioc->gpio_r <2 >().set ([this ] { return m_selected_floppy ? !m_selected_floppy->ready_r () : 0 ; });
1211
- // m_ioc->gpio_r<3>().set([this] () { logerror("%s: Reserved", machine().describe_context()); return 0; });
1212
- // m_ioc->gpio_r<4>().set([this] () { logerror("%s: Aux IO connector", machine().describe_context()); return 0; });
1213
- // m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %s", machine().describe_context(), state); });
1210
+ // m_ioc->gpio_r<3>().set([this] () { logerror("%s: Reserved\n ", machine().describe_context()); return 0; });
1211
+ // m_ioc->gpio_r<4>().set([this] () { logerror("%s: Aux IO connector\n ", machine().describe_context()); return 0; });
1212
+ // m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %s\n ", machine().describe_context(), state); });
1214
1213
1215
1214
m_ram->set_default_size (" 1M" );
1216
1215
@@ -1444,6 +1443,7 @@ void aa310_state::ar140(machine_config &config)
1444
1443
void aa310_state::aa540 (machine_config &config)
1445
1444
{
1446
1445
aa310 (config);
1446
+
1447
1447
m_maincpu->set_clock (52_MHz_XTAL / 2 ); // ARM3
1448
1448
m_maincpu->set_copro_type (arm_cpu_device::copro_type::VL86C020);
1449
1449
@@ -1452,8 +1452,6 @@ void aa310_state::aa540(machine_config &config)
1452
1452
// expansion slots - 4-card backplane
1453
1453
ARCHIMEDES_PODULE_SLOT (config, m_podule[1 ], m_exp, archimedes_exp_devices, nullptr ); // Acorn AKA31 SCSI 100MB HDD
1454
1454
ARCHIMEDES_PODULE_SLOT (config, m_podule[3 ], m_exp, archimedes_exp_devices, nullptr );
1455
-
1456
- // ARCHIMEDES_TEST_SLOT(config, m_test, archimedes_test_devices, nullptr);
1457
1455
}
1458
1456
1459
1457
void aa310_state::ar225 (machine_config &config)
@@ -1509,15 +1507,17 @@ void aa310_state::av20dev(machine_config &config)
1509
1507
void aa4000_state::aa3010 (machine_config &config)
1510
1508
{
1511
1509
aabase (config);
1510
+
1512
1511
m_maincpu->set_clock (72_MHz_XTAL / 6 ); // ARM250
1512
+ m_maincpu->set_copro_type (arm_cpu_device::copro_type::VL86C020);
1513
1513
1514
1514
m_ioc->baud_w ().set (" upc:serial1" , FUNC (ns16450_device::clock_w));
1515
- m_ioc->peripheral_r <1 >().set ([this ] () { logerror (" %s: IOC: Peripheral Select 1 R" , machine ().describe_context ()); return 0 ; });
1516
- m_ioc->peripheral_w <1 >().set ([this ] (int state) { logerror (" %s: IOC: Peripheral Select 1 W %d" , machine ().describe_context (), state); });
1515
+ m_ioc->peripheral_r <1 >().set ([this ] () { logerror (" %s: IOC: Peripheral Select 1 R\n " , machine ().describe_context ()); return 0 ; });
1516
+ m_ioc->peripheral_w <1 >().set ([this ] (int state) { logerror (" %s: IOC: Peripheral Select 1 W %d\n " , machine ().describe_context (), state); });
1517
1517
m_ioc->peripheral_r <2 >().set (" econet" , FUNC (archimedes_econet_slot_device::read));
1518
1518
m_ioc->peripheral_w <2 >().set (" econet" , FUNC (archimedes_econet_slot_device::write));
1519
- m_ioc->peripheral_r <3 >().set ([this ] () { logerror (" %s: IOC: Peripheral Select 3 R" , machine ().describe_context ()); return 0 ; });
1520
- m_ioc->peripheral_w <3 >().set ([this ] (int state) { logerror (" %s: IOC: Peripheral Select 3 W %d" , machine ().describe_context (), state); });
1519
+ m_ioc->peripheral_r <3 >().set ([this ] () { logerror (" %s: IOC: Peripheral Select 3 R\n " , machine ().describe_context ()); return 0 ; });
1520
+ m_ioc->peripheral_w <3 >().set ([this ] (int state) { logerror (" %s: IOC: Peripheral Select 3 W %d\n " , machine ().describe_context (), state); });
1521
1521
m_ioc->peripheral_r <5 >().set (FUNC (aa4000_state::ioeb_r));
1522
1522
m_ioc->peripheral_w <5 >().set (FUNC (aa4000_state::ioeb_w));
1523
1523
m_ioc->gpio_r <0 >().set (m_i2cmem, FUNC (pcf8583_device::sda_r));
@@ -1527,7 +1527,7 @@ void aa4000_state::aa3010(machine_config &config)
1527
1527
m_ioc->gpio_r <3 >().set (" idrom" , FUNC (ds2401_device::read));
1528
1528
m_ioc->gpio_w <3 >().set (" idrom" , FUNC (ds2401_device::write));
1529
1529
m_ioc->gpio_r <4 >().set_constant (1 ); // Sintr
1530
- // m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %d", machine().describe_context(), state); });
1530
+ // m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %d\n ", machine().describe_context(), state); });
1531
1531
1532
1532
m_ram->set_default_size (" 1M" ).set_extra_options (" 2M" );
1533
1533
@@ -1563,8 +1563,6 @@ void aa4000_state::aa3010(machine_config &config)
1563
1563
1564
1564
archimedes_econet_slot_device &econet (ARCHIMEDES_ECONET_SLOT (config, " econet" , archimedes_econet_devices, nullptr ));
1565
1565
econet.efiq_handler ().set (m_ioc, FUNC (acorn_ioc_device::fl_w));
1566
-
1567
- // ARCHIMEDES_TEST_SLOT(config, m_test, archimedes_test_devices, nullptr);
1568
1566
}
1569
1567
1570
1568
void aa4000_state::aa3020 (machine_config &config)
@@ -1592,16 +1590,17 @@ void aa4000_state::aa4000(machine_config &config)
1592
1590
void aa5000_state::aa5000 (machine_config &config)
1593
1591
{
1594
1592
aabase (config);
1593
+
1595
1594
m_maincpu->set_clock (50_MHz_XTAL / 2 ); // ARM3
1596
1595
m_maincpu->set_copro_type (arm_cpu_device::copro_type::VL86C020);
1597
1596
1598
1597
m_ioc->baud_w ().set (" upc:serial" , FUNC (ns16450_device::clock_w));
1599
- m_ioc->peripheral_r <1 >().set ([this ] () { logerror (" %s: IOC: Peripheral Select 1 R" , machine ().describe_context ()); return 0 ; });
1600
- m_ioc->peripheral_w <1 >().set ([this ] (int state) { logerror (" %s: IOC: Peripheral Select 1 W %d" , machine ().describe_context (), state); });
1598
+ m_ioc->peripheral_r <1 >().set ([this ] () { logerror (" %s: IOC: Peripheral Select 1 R\n " , machine ().describe_context ()); return 0 ; });
1599
+ m_ioc->peripheral_w <1 >().set ([this ] (int state) { logerror (" %s: IOC: Peripheral Select 1 W %d\n " , machine ().describe_context (), state); });
1601
1600
m_ioc->peripheral_r <2 >().set (" econet" , FUNC (archimedes_econet_slot_device::read));
1602
1601
m_ioc->peripheral_w <2 >().set (" econet" , FUNC (archimedes_econet_slot_device::write));
1603
- m_ioc->peripheral_r <3 >().set ([this ] () { logerror (" %s: IOC: Peripheral Select 3 R" , machine ().describe_context ()); return 0 ; });
1604
- m_ioc->peripheral_w <3 >().set ([this ] (int state) { logerror (" %s: IOC: Peripheral Select 3 W %d" , machine ().describe_context (), state); });
1602
+ m_ioc->peripheral_r <3 >().set ([this ] () { logerror (" %s: IOC: Peripheral Select 3 R\n " , machine ().describe_context ()); return 0 ; });
1603
+ m_ioc->peripheral_w <3 >().set ([this ] (int state) { logerror (" %s: IOC: Peripheral Select 3 W %d\n " , machine ().describe_context (), state); });
1605
1604
m_ioc->peripheral_r <5 >().set (FUNC (aa5000_state::ioeb_r));
1606
1605
m_ioc->peripheral_w <5 >().set (FUNC (aa5000_state::ioeb_w));
1607
1606
m_ioc->gpio_r <0 >().set (" i2cmem" , FUNC (pcf8583_device::sda_r));
@@ -1611,7 +1610,7 @@ void aa5000_state::aa5000(machine_config &config)
1611
1610
m_ioc->gpio_r <3 >().set (" idrom" , FUNC (ds2401_device::read));
1612
1611
m_ioc->gpio_w <3 >().set (" idrom" , FUNC (ds2401_device::write));
1613
1612
m_ioc->gpio_r <4 >().set_constant (1 ); // Sintr
1614
- // m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %d", machine().describe_context(), state); });
1613
+ // m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %d\n ", machine().describe_context(), state); });
1615
1614
1616
1615
m_ram->set_default_size (" 2M" ).set_extra_options (" 4M" );
1617
1616
@@ -1655,8 +1654,6 @@ void aa5000_state::aa5000(machine_config &config)
1655
1654
archimedes_econet_slot_device &econet (ARCHIMEDES_ECONET_SLOT (config, " econet" , archimedes_econet_devices, nullptr ));
1656
1655
econet.efiq_handler ().set (m_ioc, FUNC (acorn_ioc_device::fl_w));
1657
1656
1658
- // ARCHIMEDES_TEST_SLOT(config, m_test, archimedes_test_devices, nullptr);
1659
-
1660
1657
// extension rom
1661
1658
GENERIC_SOCKET (config, m_ext_rom, generic_linear_slot, " ext_rom" , " bin,rom" );
1662
1659
subdevice<software_list_device>(" rom_list" )->set_filter (" A5000,ARC" );
@@ -1665,6 +1662,7 @@ void aa5000_state::aa5000(machine_config &config)
1665
1662
void aa4_state::aa4 (machine_config &config)
1666
1663
{
1667
1664
aa3010 (config);
1665
+
1668
1666
m_maincpu->set_clock (24_MHz_XTAL); // ARM3
1669
1667
m_maincpu->set_copro_type (arm_cpu_device::copro_type::VL86C020);
1670
1668
@@ -1725,11 +1723,17 @@ ROM_START( aa500 )
1725
1723
ROMX_LOAD ( " a500_ros310_rom1.ic25" , 0x000001 , 0x80000 , CRC(0be31dfc) SHA1(c2a7aa6737931171507950025c3bc1008800e0f7), ROM_BIOS(2 ) | ROM_SKIP(3 ) )
1726
1724
ROMX_LOAD ( " a500_ros310_rom2.ic26" , 0x000002 , 0x80000 , CRC(081c5825) SHA1(e42a356bfaa77a81ee9e7e2a8d58ff0f301583c2), ROM_BIOS(2 ) | ROM_SKIP(3 ) )
1727
1725
ROMX_LOAD ( " a500_ros310_rom3.ic27" , 0x000003 , 0x80000 , CRC(c9bd793b) SHA1(534428a338b10d49b4fc2d9d6ab4c2463e3c3db5), ROM_BIOS(2 ) | ROM_SKIP(3 ) )
1726
+ ROM_SYSTEM_BIOS ( 3 , " sn63" , " #63: RISC OS 2.00 (12 Oct 1988)" )
1727
+ ROMX_LOAD ( " a500_ros200_rom0.ic24" , 0x000000 , 0x10000 , CRC(e69849a6) SHA1(80a0c849025a24d626804f57fe6ca992088d96e2), ROM_BIOS(3 ) | ROM_SKIP(3 ) )
1728
+ ROMX_LOAD ( " a500_ros200_rom1.ic25" , 0x000001 , 0x10000 , CRC(3ad7e1c0) SHA1(427560f567fa5f8a118db64c8e4bc2756cb2a457), ROM_BIOS(3 ) | ROM_SKIP(3 ) )
1729
+ ROMX_LOAD ( " a500_ros200_rom2.ic26" , 0x000002 , 0x10000 , CRC(e0f9466c) SHA1(017b658057e608b490f7e09ad5ef021687d9a79e), ROM_BIOS(3 ) | ROM_SKIP(3 ) )
1730
+ ROMX_LOAD ( " a500_ros200_rom3.ic27" , 0x000003 , 0x10000 , CRC(7876cc6c) SHA1(99c008aa1eae1977545ab0cebf2d8b2f09879818), ROM_BIOS(3 ) | ROM_SKIP(3 ) )
1728
1731
1729
1732
ROM_REGION ( 0x100 , " i2cmem" , ROMREGION_ERASE00 )
1730
1733
ROMX_LOAD ( " cmos_riscos2.bin" , 0x0000 , 0x0100 , CRC(1ecf3369) SHA1(96163285797e0d54017d8d4ae87835328a4658bd), ROM_BIOS(0 ) )
1731
1734
ROMX_LOAD ( " cmos_riscos2.bin" , 0x0000 , 0x0100 , CRC(1ecf3369) SHA1(96163285797e0d54017d8d4ae87835328a4658bd), ROM_BIOS(1 ) )
1732
1735
ROMX_LOAD ( " cmos_riscos3.bin" , 0x0000 , 0x0100 , CRC(96ed59b2) SHA1(9dab30b4c3305e1142819687889fca334b532679), ROM_BIOS(2 ) )
1736
+ ROMX_LOAD ( " cmos_riscos2.bin" , 0x0000 , 0x0100 , CRC(1ecf3369) SHA1(96163285797e0d54017d8d4ae87835328a4658bd), ROM_BIOS(3 ) )
1733
1737
ROM_END
1734
1738
1735
1739
ROM_START ( aa500d )
0 commit comments