mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
misc/neomania: add parallel port device notes
This commit is contained in:
parent
86aae26786
commit
224ebc70ab
@ -31,9 +31,9 @@ it8705f_device::it8705f_device(const machine_config &mconfig, const char *tag, d
|
||||
, m_space_config("superio_config_regs", ENDIANNESS_LITTLE, 8, 8, 0, address_map_constructor(FUNC(it8705f_device::config_map), this))
|
||||
, m_lpt(*this, "lpt")
|
||||
, m_logical_view(*this, "logical_view")
|
||||
// , m_irq1_callback(*this)
|
||||
// , m_irq8_callback(*this)
|
||||
// , m_irq9_callback(*this)
|
||||
, m_irq1_callback(*this)
|
||||
, m_irq8_callback(*this)
|
||||
, m_irq9_callback(*this)
|
||||
// , m_txd1_callback(*this)
|
||||
// , m_ndtr1_callback(*this)
|
||||
// , m_nrts1_callback(*this)
|
||||
@ -83,7 +83,7 @@ device_memory_interface::space_config_vector it8705f_device::memory_space_config
|
||||
void it8705f_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
PC_LPT(config, m_lpt);
|
||||
// m_lpt->irq_handler().set(FUNC(it8705f_device::irq_parallel_w));
|
||||
m_lpt->irq_handler().set(FUNC(it8705f_device::irq_parallel_w));
|
||||
}
|
||||
|
||||
|
||||
@ -175,7 +175,7 @@ void it8705f_device::config_map(address_map &map)
|
||||
const u8 shift = offset * 8;
|
||||
m_lpt_address &= 0xff << shift;
|
||||
m_lpt_address |= data << (shift ^ 8);
|
||||
LOG("LD3 (LPT): remap %04x ([%d] %02x)\n", m_lpt_address, offset, data);
|
||||
LOG("LDN3 (LPT): remap %04x ([%d] %02x)\n", m_lpt_address, offset, data);
|
||||
|
||||
remap(AS_IO, 0, 0x400);
|
||||
})
|
||||
@ -188,7 +188,7 @@ void it8705f_device::config_map(address_map &map)
|
||||
}),
|
||||
NAME([this] (offs_t offset, u8 data) {
|
||||
m_lpt_irq_line = data & 0xf;
|
||||
LOG("LD3 (LPT): irq routed to %02x\n", m_lpt_irq_line);
|
||||
LOG("LDN3 (LPT): irq routed to %02x\n", m_lpt_irq_line);
|
||||
})
|
||||
);
|
||||
m_logical_view[3](0x74, 0x74).lrw8(
|
||||
@ -197,7 +197,7 @@ void it8705f_device::config_map(address_map &map)
|
||||
}),
|
||||
NAME([this] (offs_t offset, u8 data) {
|
||||
m_lpt_drq_line = data & 0x7;
|
||||
LOG("LD3 (LPT): drq %s (%02x)\n", BIT(m_lpt_drq_line, 2) ? "disabled" : "enabled", data);
|
||||
LOG("LDN3 (LPT): drq %s (%02x)\n", BIT(m_lpt_drq_line, 2) ? "disabled" : "enabled", data);
|
||||
})
|
||||
);
|
||||
// Environment controller / HW monitor
|
||||
@ -238,11 +238,10 @@ template <unsigned N> u8 it8705f_device::activate_r(offs_t offset)
|
||||
template <unsigned N> void it8705f_device::activate_w(offs_t offset, u8 data)
|
||||
{
|
||||
m_activate[N] = data & 1;
|
||||
LOG("LN%d Device %s\n", N, data & 1 ? "enabled" : "disabled");
|
||||
LOG("LDN%d Device %s\n", N, data & 1 ? "enabled" : "disabled");
|
||||
remap(AS_IO, 0, 0x400);
|
||||
}
|
||||
|
||||
#if 0
|
||||
void it8705f_device::request_irq(int irq, int state)
|
||||
{
|
||||
switch (irq)
|
||||
@ -299,5 +298,3 @@ void it8705f_device::irq_parallel_w(int state)
|
||||
return;
|
||||
request_irq(m_lpt_irq_line, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -21,11 +21,9 @@ public:
|
||||
|
||||
void remap(int space_id, offs_t start, offs_t end) override;
|
||||
|
||||
// auto gp20_reset() { return m_gp20_reset_callback.bind(); }
|
||||
// auto gp25_gatea20() { return m_gp25_gatea20_callback.bind(); }
|
||||
// auto irq1() { return m_irq1_callback.bind(); }
|
||||
// auto irq8() { return m_irq8_callback.bind(); }
|
||||
// auto irq9() { return m_irq9_callback.bind(); }
|
||||
auto irq1() { return m_irq1_callback.bind(); }
|
||||
auto irq8() { return m_irq8_callback.bind(); }
|
||||
auto irq9() { return m_irq9_callback.bind(); }
|
||||
// auto txd1() { return m_txd1_callback.bind(); }
|
||||
// auto ndtr1() { return m_ndtr1_callback.bind(); }
|
||||
// auto nrts1() { return m_nrts1_callback.bind(); }
|
||||
@ -46,9 +44,9 @@ private:
|
||||
required_device<pc_lpt_device> m_lpt;
|
||||
memory_view m_logical_view;
|
||||
|
||||
// devcb_write_line m_irq1_callback;
|
||||
// devcb_write_line m_irq8_callback;
|
||||
// devcb_write_line m_irq9_callback;
|
||||
devcb_write_line m_irq1_callback;
|
||||
devcb_write_line m_irq8_callback;
|
||||
devcb_write_line m_irq9_callback;
|
||||
// devcb_write_line m_txd1_callback;
|
||||
// devcb_write_line m_ndtr1_callback;
|
||||
// devcb_write_line m_nrts1_callback;
|
||||
@ -75,9 +73,9 @@ private:
|
||||
template <unsigned N> u8 activate_r(offs_t offset);
|
||||
template <unsigned N> void activate_w(offs_t offset, u8 data);
|
||||
|
||||
// void irq_parallel_w(int state);
|
||||
void irq_parallel_w(int state);
|
||||
|
||||
// void request_irq(int irq, int state);
|
||||
void request_irq(int irq, int state);
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(IT8705F, it8705f_device);
|
||||
|
@ -1,6 +1,23 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:
|
||||
/*
|
||||
/**************************************************************************************************
|
||||
|
||||
TODO:
|
||||
- SIGABRT in pcipc/pciagp trying to execute ppm.exe,
|
||||
in shutms11 will draw "Parallel Port Manager v4.0" then fail on device check.
|
||||
\- "Testing I/O board connection"
|
||||
bp 100027e2, edit $25dd11 = 0x02 (board identifier?)
|
||||
\- "Testing I/O board communications"
|
||||
bp 10002942 (checks acknowledge from control bit 6 @ $37a, for 0xe0-0xe7. Buffers at $25dd48-4f)
|
||||
Expected ack values: 40 40 00 00 40 00 40 00
|
||||
bp 10002d57,1,{ebx=8;g} for a quick workaround
|
||||
\- "Testing I/O board input bits" / "BAD 0 1 2 3 7"
|
||||
Goes ahead in checking each port r/w, TBD
|
||||
\- Fails win98 PS/2 PnP afterwards, which isn't supposed to be connected in the first place.
|
||||
- Extract "Guard.zip" and understand what is for;
|
||||
|
||||
===================================================================================================
|
||||
|
||||
Neo Mania:
|
||||
The Portuguese (Vila Nova de Gaia) company "Hyper M.A.R." created this machine on 2002 with 40 games,
|
||||
and updated it on 2003 increasing the number of games up to 48. There was a latest newer version
|
||||
@ -21,15 +38,10 @@ C:\Neomania folder contains ppm.exe, which is the driver for the parallel port d
|
||||
It also contains a password protected "Guard.zip", copy protection?
|
||||
C:\Windows has driver installs for:
|
||||
- a Sound Blaster AudioPCI 128
|
||||
- an ATI All-In-Wonder / All-In-Wonder Pro (with leftover "SYSTEM.I~I" footprint with "display.drv=ATI Rage IIC AGP (Português)").
|
||||
- an ATI All-In-Wonder / All-In-Wonder Pro (with leftover "SYSTEM.I~I" footprint with
|
||||
"display.drv=ATI Rage IIC AGP (Português)").
|
||||
|
||||
TODO:
|
||||
- HDD image doesn't boot in neither shutms11 nor pcipc, mangled MBR boot record or geometry params (has -chs 3532,16,38 but WinImage reports back ~20 GB partition?);
|
||||
- (With manually c&p files in a CHD that works) SIGABRT in pcipc trying to execute ppm.exe, in shutms11 will draw "Parallel Port Manager v4.0" then fail on device check;
|
||||
- Extract "Guard.zip" and understand what is for;
|
||||
|
||||
|
||||
*/
|
||||
**************************************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/i386/i386.h"
|
||||
|
@ -208,12 +208,10 @@ static void isa_internal_devices(device_slot_interface &device)
|
||||
|
||||
void sis630_state::ite_superio_config(device_t *device)
|
||||
{
|
||||
// fdc37c93x_device &fdc = *downcast<fdc37c93x_device *>(device);
|
||||
// it8705f_device &fdc = *downcast<it8705f_device *>(device);
|
||||
// fdc.set_sysopt_pin(1);
|
||||
// fdc.gp20_reset().set_inputline(":maincpu", INPUT_LINE_RESET);
|
||||
// fdc.gp25_gatea20().set_inputline(":maincpu", INPUT_LINE_A20);
|
||||
// fdc.irq1().set(":pci:07.0", FUNC(i82371sb_isa_device::pc_irq1_w));
|
||||
// fdc.irq8().set(":pci:07.0", FUNC(i82371sb_isa_device::pc_irq8n_w));
|
||||
// fdc.irq1().set(":pci:01.0", FUNC(sis950_lpc_device::pc_irq1_w));
|
||||
// fdc.irq8().set(":pci:01.0", FUNC(sis950_lpc_device::pc_irq8n_w));
|
||||
// fdc.txd1().set(":serport0", FUNC(rs232_port_device::write_txd));
|
||||
// fdc.ndtr1().set(":serport0", FUNC(rs232_port_device::write_dtr));
|
||||
// fdc.nrts1().set(":serport0", FUNC(rs232_port_device::write_rts));
|
||||
|
Loading…
Reference in New Issue
Block a user