digilog320: Floppy works now, fix size and hookup NVRAM, add softwarelist

This commit is contained in:
Dirk Best 2022-01-29 13:09:20 +01:00
parent 9ba6911334
commit 1921ebbfa9
2 changed files with 68 additions and 3 deletions

50
hash/digilog320.xml Normal file
View File

@ -0,0 +1,50 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!-- license:CC0 -->
<softwarelist name="digilog320" description="Digilog 320 Disks">
<!--
Marked bad because it contains extra files not present on the original disk:
- RSDL O
- RSDL S
- RSDLDAT C
- RSDL R
-->
<software name="320ez">
<description>320 E-Z Menu</description>
<year>198?</year>
<publisher>Digilog</publisher>
<info name="pn" value="24-0199-01 REV A" />
<part name="flop1" interface="floppy_3_5">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="139291">
<rom name="320_ez-menu.imd" size="139291" crc="b6783cd6" sha1="8b289dc0ea47d196db0c37d6e524f7b00609893a" status="baddump" />
</dataarea>
</part>
</software>
<!--
Extra files have been removed from the disk, so the instructions labeled on the disk can
be followed again:
STEP 1: Init. device BUILT-IN EEPROM.
STEP 2: Delete STANDARD Set-Up.
STEP 3: Copy ALL files from floppy to BUILT-IN.
STEP 4: Return to FUNC. MENU, set power up to AUTOEXEC.
-->
<software name="320ezr">
<description>320 E-Z Menu (Restored)</description>
<year>198?</year>
<publisher>Digilog</publisher>
<info name="pn" value="24-0199-01 REV A" />
<part name="flop1" interface="floppy_3_5">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="2002527">
<rom name="320_ez-menu_restored.mfm" size="2002527" crc="67f4759f" sha1="96045b94f1b85864985370daecbd69d79b7a1a42" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -60,12 +60,14 @@
#include "machine/digilog320_kbd.h"
#include "machine/i8251.h"
#include "machine/mc68681.h"
#include "machine/nvram.h"
#include "machine/wd_fdc.h"
#include "machine/z80scc.h"
#include "video/mc6845.h"
#include "imagedev/floppy.h"
#include "emupal.h"
#include "screen.h"
#include "softlist_dev.h"
namespace {
@ -143,7 +145,7 @@ void digilog320_state::main_mem_map(address_map &map)
{
map(0x00000, 0x1ffff).ram();
map(0x80000, 0x83fff).ram().share("vram");
map(0x90000, 0x90fff).ram();
map(0x90000, 0x91fff).ram().share("nvram");
map(0xa0000, 0xfffff).rom().region("maincpu", 0);
}
@ -249,15 +251,24 @@ void digilog320_state::fdc_w(offs_t offset, uint8_t data)
void digilog320_state::fdc_ctrl_w(uint8_t data)
{
// 7654---- unknown (not used?)
// ----3--- unknown (motor on?)
// -----2-- side select
// ------10 unknown (drive select?)
logerror("fdc_ctrl_w: %02x\n", data);
floppy_image_device *floppy = m_floppy->get_device();
m_fdc->set_floppy(floppy);
// motor always on for now
if (floppy)
{
floppy->ss_w(BIT(data, 2));
// motor always on for now
floppy->mon_w(0);
}
// set to mfm
m_fdc->dden_w(0);
@ -351,6 +362,8 @@ void digilog320_state::digilog320(machine_config &config)
m_subcpu->set_addrmap(AS_IO, &digilog320_state::sub_io_map);
m_subcpu->set_irq_acknowledge_callback(m_uic, FUNC(am9519_device::iack_cb));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
AM9519(config, m_uic, 0);
m_uic->out_int_callback().set_inputline(m_subcpu, INPUT_LINE_IRQ0);
@ -381,9 +394,11 @@ void digilog320_state::digilog320(machine_config &config)
MB8877(config, m_fdc, 16_MHz_XTAL / 16);
m_fdc->intrq_wr_callback().set(m_maincpu, FUNC(i80186_cpu_device::int3_w));
//m_fdc->drq_wr_callback()
m_fdc->drq_wr_callback().set(m_maincpu, FUNC(i80186_cpu_device::drq1_w));
FLOPPY_CONNECTOR(config, "fdc:0", digilog320_floppies, "35dd", floppy_image_device::default_mfm_floppy_formats);
SOFTWARE_LIST(config, "floppy_list").set_original("digilog320");
digilog320_kbd_hle_device &kbd(DIGILOG320_KBD_HLE(config, "kbd"));
kbd.tx_handler().set(m_duart, FUNC(scn2681_device::rx_a_w));
}