mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
srcclean and manual cleanup in preparation for release branch
This commit is contained in:
parent
5f1ce52025
commit
e503b7f90e
@ -405,7 +405,7 @@ Known undumped:
|
||||
<rom name="shuum,astu no sugoshikata - abogado powers (disk h).dsk" size="737280" crc="5482463e" sha1="30b9faa23d4209886e5237ac36e28b6caab138d6"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
</software>
|
||||
|
||||
<software name="hbf1xv">
|
||||
<description>Sony HB-F1XV Story Disk (Japan)</description>
|
||||
|
@ -62175,7 +62175,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="sureinst_10" cloneof="sureinst">
|
||||
<description>Sure Instinct (NTSC, v1.0)</description>
|
||||
<year>2021</year>
|
||||
|
@ -3210,10 +3210,10 @@ end
|
||||
---------------------------------------------------
|
||||
|
||||
if (MACHINES["S2350"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/machine/s2350.cpp",
|
||||
MAME_DIR .. "src/devices/machine/s2350.h",
|
||||
}
|
||||
files {
|
||||
MAME_DIR .. "src/devices/machine/s2350.cpp",
|
||||
MAME_DIR .. "src/devices/machine/s2350.h",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
|
@ -2,45 +2,45 @@
|
||||
// copyright-holders:R. Justice
|
||||
/*********************************************************************
|
||||
|
||||
vistaa800.c
|
||||
vistaa800.c
|
||||
|
||||
Implementation of the Vista A800 8" disk Controller Card for the Apple II
|
||||
|
||||
This supported up to four double sided/double density 8inch drives.
|
||||
With DMA support for the data transfers, and booting from the first 8inch drive.
|
||||
|
||||
The card looks like it was released in 1981. The schematic is dated 19th Mar 1981 for the initial drawing, with a later revision date marked, however the month is not readable for it.
|
||||
|
||||
Manual available here:
|
||||
http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Interface%20Cards/Disk%20Drive%20Controllers/Vista%20A800%20Disk%20Controller/Manuals/Vista%20A800%20Disk%20Controller%20Manual.pdf
|
||||
|
||||
I/O address details:
|
||||
Addr Write Read
|
||||
---- ----- ----
|
||||
C0n0 1797 cmd reg 1797 status reg
|
||||
C0n1 1797 track reg 1797 track reg
|
||||
C0n2 1797 sector reg 1797 sector reg
|
||||
C0n3 1797 data reg 1797 data reg
|
||||
C0n4 --same as 0--
|
||||
C0n5 --same as 1--
|
||||
C0n6 --same as 2--
|
||||
C0n7 --same as 3--
|
||||
C0n8 low DMA address not allowed
|
||||
C0n9 high DMA address not allowed
|
||||
C0nA DMA ON:Disk read (same as write)
|
||||
C0nB DMA ON:Disk write (same as write)
|
||||
C0nC DMA OFF (same as write)
|
||||
Implementation of the Vista A800 8" disk Controller Card for the Apple II
|
||||
|
||||
bit
|
||||
7 6 5 4 3 2 1 0
|
||||
C0nD sngl side x x fd fd fd fd not allowed
|
||||
dens sel x x 3 2 1 0
|
||||
C0nE --spare--
|
||||
This supported up to four double sided/double density 8inch drives.
|
||||
With DMA support for the data transfers, and booting from the first 8inch drive.
|
||||
|
||||
bit
|
||||
7 6 543210
|
||||
C0nF not allowed DMA one xxxxxx
|
||||
on side
|
||||
The card looks like it was released in 1981. The schematic is dated 19th Mar 1981 for the initial drawing, with a later revision date marked, however the month is not readable for it.
|
||||
|
||||
Manual available here:
|
||||
http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Interface%20Cards/Disk%20Drive%20Controllers/Vista%20A800%20Disk%20Controller/Manuals/Vista%20A800%20Disk%20Controller%20Manual.pdf
|
||||
|
||||
I/O address details:
|
||||
Addr Write Read
|
||||
---- ----- ----
|
||||
C0n0 1797 cmd reg 1797 status reg
|
||||
C0n1 1797 track reg 1797 track reg
|
||||
C0n2 1797 sector reg 1797 sector reg
|
||||
C0n3 1797 data reg 1797 data reg
|
||||
C0n4 --same as 0--
|
||||
C0n5 --same as 1--
|
||||
C0n6 --same as 2--
|
||||
C0n7 --same as 3--
|
||||
C0n8 low DMA address not allowed
|
||||
C0n9 high DMA address not allowed
|
||||
C0nA DMA ON:Disk read (same as write)
|
||||
C0nB DMA ON:Disk write (same as write)
|
||||
C0nC DMA OFF (same as write)
|
||||
|
||||
bit
|
||||
7 6 5 4 3 2 1 0
|
||||
C0nD sngl side x x fd fd fd fd not allowed
|
||||
dens sel x x 3 2 1 0
|
||||
C0nE --spare--
|
||||
|
||||
bit
|
||||
7 6 543210
|
||||
C0nF not allowed DMA one xxxxxx
|
||||
on side
|
||||
|
||||
|
||||
*********************************************************************/
|
||||
@ -73,7 +73,7 @@ protected:
|
||||
private:
|
||||
static void floppy_formats(format_registration &fr);
|
||||
|
||||
// fdc handlers
|
||||
// fdc handlers
|
||||
void fdc_intrq_w(uint8_t state);
|
||||
void fdc_drq_w(uint8_t state);
|
||||
|
||||
@ -181,7 +181,7 @@ uint8_t a2bus_vistaa800_device::read_c0nx(uint8_t offset)
|
||||
case 7:
|
||||
result = m_fdc->fd1797_device::read(offset & 0x03);
|
||||
break;
|
||||
|
||||
|
||||
case 0xa:
|
||||
if (!machine().side_effects_disabled())
|
||||
m_dmaenable_read = true;
|
||||
@ -218,7 +218,7 @@ uint8_t a2bus_vistaa800_device::read_c0nx(uint8_t offset)
|
||||
void a2bus_vistaa800_device::write_c0nx(uint8_t offset, uint8_t data)
|
||||
{
|
||||
floppy_image_device *floppy = nullptr;
|
||||
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
case 0:
|
||||
@ -231,7 +231,7 @@ void a2bus_vistaa800_device::write_c0nx(uint8_t offset, uint8_t data)
|
||||
case 7:
|
||||
m_fdc->fd1797_device::write(offset & 0x03, data);
|
||||
break;
|
||||
|
||||
|
||||
case 8:
|
||||
m_dmaaddr = (m_dmaaddr & 0xff00) + data;
|
||||
break;
|
||||
|
@ -5,8 +5,8 @@
|
||||
|
||||
PC-Engine Arcade Card emulation
|
||||
|
||||
TODO:
|
||||
- Proper Arcade Card Duo support
|
||||
TODO:
|
||||
- Proper Arcade Card Duo support
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
@ -65,7 +65,7 @@ void pce_acard_duo_device::device_start()
|
||||
void pce_acard_pro_device::device_start()
|
||||
{
|
||||
pce_acard_duo_device::device_start();
|
||||
|
||||
|
||||
m_scdsys.init(*this);
|
||||
m_scdsys.set_region(false);
|
||||
}
|
||||
|
@ -22,10 +22,10 @@ protected:
|
||||
virtual void device_reset() override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
|
||||
// virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
// virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
|
||||
// virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
|
||||
// uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override;
|
||||
// virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
|
||||
// uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override;
|
||||
|
||||
virtual void config_map(address_map &map) override;
|
||||
|
||||
|
@ -47,7 +47,7 @@ db50xg_device::db50xg_device(const machine_config &mconfig, const char *tag, dev
|
||||
m_swp00(*this, "swp00")
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
db50xg_device::~db50xg_device()
|
||||
{
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ db60xg_device::db60xg_device(const machine_config &mconfig, const char *tag, dev
|
||||
m_swp00(*this, "swp00")
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
db60xg_device::~db60xg_device()
|
||||
{
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ omniwave_device::omniwave_device(const machine_config &mconfig, const char *tag,
|
||||
m_ks0164(*this, "ks0164")
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
omniwave_device::~omniwave_device()
|
||||
{
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders: Devin Acker
|
||||
/*
|
||||
Casio WG-130
|
||||
Casio WG-130
|
||||
|
||||
This is the daughterboard version of the GZ-30M and GZ-70SP modules, using the same ROM.
|
||||
This is the daughterboard version of the GZ-30M and GZ-70SP modules, using the same ROM.
|
||||
*/
|
||||
#include "emu.h"
|
||||
#include "wg130.h"
|
||||
|
@ -24,9 +24,9 @@ DEFINE_DEVICE_TYPE(MEDIAGX_CS5530_BRIDGE, mediagx_cs5530_bridge_device, "mediagx
|
||||
|
||||
mediagx_cs5530_bridge_device::mediagx_cs5530_bridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: pci_device(mconfig, MEDIAGX_CS5530_BRIDGE, tag, owner, clock)
|
||||
// , m_smi_callback(*this)
|
||||
// , m_nmi_callback(*this)
|
||||
// , m_stpclk_callback(*this)
|
||||
// , m_smi_callback(*this)
|
||||
// , m_nmi_callback(*this)
|
||||
// , m_stpclk_callback(*this)
|
||||
, m_boot_state_hook(*this)
|
||||
, m_rtcale(*this)
|
||||
, m_rtccs_read(*this, 0xff)
|
||||
@ -139,15 +139,15 @@ void mediagx_cs5530_bridge_device::device_reset()
|
||||
void mediagx_cs5530_bridge_device::config_map(address_map &map)
|
||||
{
|
||||
pci_device::config_map(map);
|
||||
// map(0x40, 0x42) PCI Function Control
|
||||
// map(0x43, 0x43) USB Shadow
|
||||
// map(0x44, 0x44) Reset Control
|
||||
// map(0x40, 0x42) PCI Function Control
|
||||
// map(0x43, 0x43) USB Shadow
|
||||
// map(0x44, 0x44) Reset Control
|
||||
|
||||
// map(0x50, 0x50) PIT Control/ISA CLK divider
|
||||
// map(0x51, 0x51) ISA I/O Recovery Control
|
||||
// map(0x52, 0x52) ROM/AT Logic Control
|
||||
// map(0x53, 0x53) Alternate CPU Support
|
||||
// map(0x5a, 0x5b) Decode Control
|
||||
// map(0x50, 0x50) PIT Control/ISA CLK divider
|
||||
// map(0x51, 0x51) ISA I/O Recovery Control
|
||||
// map(0x52, 0x52) ROM/AT Logic Control
|
||||
// map(0x53, 0x53) Alternate CPU Support
|
||||
// map(0x5a, 0x5b) Decode Control
|
||||
map(0x5a, 0x5b).lrw8(
|
||||
NAME([this] (offs_t offset) {
|
||||
return m_decode_control[offset];
|
||||
@ -157,52 +157,52 @@ void mediagx_cs5530_bridge_device::config_map(address_map &map)
|
||||
remap_cb();
|
||||
})
|
||||
);
|
||||
// map(0x5c, 0x5d) PCI Interrupt Steering
|
||||
// map(0x5c, 0x5d) PCI Interrupt Steering
|
||||
|
||||
// map(0x70, 0x71) GPCS Base Address
|
||||
// map(0x72, 0x72) GPCS Control
|
||||
// map(0x70, 0x71) GPCS Base Address
|
||||
// map(0x72, 0x72) GPCS Control
|
||||
|
||||
// map(0x80, 0x83) Power Management Enable
|
||||
// map(0x84, 0x87) Second Level Power Management Status Mirror (r/o)
|
||||
// map(0x88, 0x89) General Purpose Timer 1 Count/Control
|
||||
// map(0x8a, 0x8b) General Purpose Timer 2 Count/Control
|
||||
// map(0x8c, 0x8c) IRQ Speedup Timer Count
|
||||
// map(0x8d, 0x8d) Video Speedup Timer Count
|
||||
// map(0x8e, 0x8e) VGA Timer COunt
|
||||
// map(0x80, 0x83) Power Management Enable
|
||||
// map(0x84, 0x87) Second Level Power Management Status Mirror (r/o)
|
||||
// map(0x88, 0x89) General Purpose Timer 1 Count/Control
|
||||
// map(0x8a, 0x8b) General Purpose Timer 2 Count/Control
|
||||
// map(0x8c, 0x8c) IRQ Speedup Timer Count
|
||||
// map(0x8d, 0x8d) Video Speedup Timer Count
|
||||
// map(0x8e, 0x8e) VGA Timer COunt
|
||||
|
||||
// map(0x90, 0x90) GPIO Pin Direction
|
||||
// map(0x91, 0x91) GPIO Pin Data
|
||||
// map(0x92, 0x92) GPIO Control 1
|
||||
// map(0x93, 0x93) Miscellaneous Device Control
|
||||
// map(0x94, 0x95) Suspend Modulation OFF/ON Count
|
||||
// map(0x96, 0x96) Suspend Configuration
|
||||
// map(0x97, 0x97) GPIO Control 2
|
||||
// map(0x90, 0x90) GPIO Pin Direction
|
||||
// map(0x91, 0x91) GPIO Pin Data
|
||||
// map(0x92, 0x92) GPIO Control 1
|
||||
// map(0x93, 0x93) Miscellaneous Device Control
|
||||
// map(0x94, 0x95) Suspend Modulation OFF/ON Count
|
||||
// map(0x96, 0x96) Suspend Configuration
|
||||
// map(0x97, 0x97) GPIO Control 2
|
||||
|
||||
// map(0x98, 0x99) Primary HDD Idle Timer Count
|
||||
// map(0x9a, 0x9b) Floppy Disk Idle Timer Count
|
||||
// map(0x9c, 0x9d) Parallel / Serial Idle Timer Count
|
||||
// map(0x9e, 0x9f) Keyboard / Mouse Idle Timer Count
|
||||
// map(0xa0, 0xa5) User Defined Device # Idle Timer Count
|
||||
// map(0xa6, 0xa7) Video Idle Timer Count
|
||||
// map(0xa8, 0xa9) Video Overflow Count
|
||||
// map(0xac, 0xad) Secondary HDD Idle Timer Count
|
||||
// map(0xae, 0xae) CPU Suspend Command (w/o)
|
||||
// map(0xaf, 0xaf) Suspend Notebook Command (w/o)
|
||||
// map(0x98, 0x99) Primary HDD Idle Timer Count
|
||||
// map(0x9a, 0x9b) Floppy Disk Idle Timer Count
|
||||
// map(0x9c, 0x9d) Parallel / Serial Idle Timer Count
|
||||
// map(0x9e, 0x9f) Keyboard / Mouse Idle Timer Count
|
||||
// map(0xa0, 0xa5) User Defined Device # Idle Timer Count
|
||||
// map(0xa6, 0xa7) Video Idle Timer Count
|
||||
// map(0xa8, 0xa9) Video Overflow Count
|
||||
// map(0xac, 0xad) Secondary HDD Idle Timer Count
|
||||
// map(0xae, 0xae) CPU Suspend Command (w/o)
|
||||
// map(0xaf, 0xaf) Suspend Notebook Command (w/o)
|
||||
|
||||
// map(0xb4, 0xb7) Floppy Port Shadows (r/o)
|
||||
// map(0xb8, 0xb8) DMA Shadow (r/o)
|
||||
// map(0xb9, 0xb9) PIC Shadow (r/o)
|
||||
// map(0xba, 0xba) PIT Shadow (r/o)
|
||||
// map(0xbb, 0xbb) RTC Index Shadow (r/o)
|
||||
// map(0xbc, 0xbc) Clock Stop Control
|
||||
// map(0xb4, 0xb7) Floppy Port Shadows (r/o)
|
||||
// map(0xb8, 0xb8) DMA Shadow (r/o)
|
||||
// map(0xb9, 0xb9) PIC Shadow (r/o)
|
||||
// map(0xba, 0xba) PIT Shadow (r/o)
|
||||
// map(0xbb, 0xbb) RTC Index Shadow (r/o)
|
||||
// map(0xbc, 0xbc) Clock Stop Control
|
||||
|
||||
// map(0xc0, 0xcb) User Defined Device # Base Address
|
||||
// map(0xcc, 0xce) User Defined Device # Control
|
||||
// map(0xc0, 0xcb) User Defined Device # Base Address
|
||||
// map(0xcc, 0xce) User Defined Device # Control
|
||||
|
||||
// map(0xd0, 0xd0) Software SMI (w/o)
|
||||
// map(0xec, 0xec) Timer Test
|
||||
// map(0xd0, 0xd0) Software SMI (w/o)
|
||||
// map(0xec, 0xec) Timer Test
|
||||
|
||||
// map(0xf4, 0xf7) Second Level Power Management Status
|
||||
// map(0xf4, 0xf7) Second Level Power Management Status
|
||||
}
|
||||
|
||||
// TODO: keyboard & RTC ports should map thru map_extra subtractive/positive decoding
|
||||
@ -244,9 +244,9 @@ void mediagx_cs5530_bridge_device::internal_io_map(address_map &map)
|
||||
);
|
||||
map(0x00a0, 0x00a1).rw("pic8259_slave", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0x00c0, 0x00df).rw(FUNC(mediagx_cs5530_bridge_device::at_dma8237_2_r), FUNC(mediagx_cs5530_bridge_device::at_dma8237_2_w));
|
||||
// map(0x04d0, 0x04d1).rw(FUNC(mediagx_cs5530_bridge_device::eisa_irq_read), FUNC(mediagx_cs5530_bridge_device::eisa_irq_write));
|
||||
// map(0x04d0, 0x04d1).rw(FUNC(mediagx_cs5530_bridge_device::eisa_irq_read), FUNC(mediagx_cs5530_bridge_device::eisa_irq_write));
|
||||
map(0x00e0, 0x00ef).noprw();
|
||||
// map(0x121c, 0x121f) ACPI Timer count register (on rev 1.3+)
|
||||
// map(0x121c, 0x121f) ACPI Timer count register (on rev 1.3+)
|
||||
}
|
||||
|
||||
void mediagx_cs5530_bridge_device::pc_irq1_w(int state) { m_pic8259_master->ir1_w(state); }
|
||||
|
@ -43,10 +43,10 @@ void mediagx_cs5530_ide_device::device_add_mconfig(machine_config &config)
|
||||
void mediagx_cs5530_ide_device::config_map(address_map &map)
|
||||
{
|
||||
pci_device::config_map(map);
|
||||
// index 0x24-0xff reserved
|
||||
// index 0x24-0xff reserved
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
void mediagx_cs5530_ide_device::primary_ide_map(address_map &map)
|
||||
{
|
||||
map(0x01f0, 0x01f7).rw(FUNC(mediagx_cs5530_ide_device::ide1_read32_cs0_r), FUNC(mediagx_cs5530_ide_device::ide1_write32_cs0_w));
|
||||
@ -121,8 +121,8 @@ void mediagx_cs5530_ide_device::io_map(address_map &map)
|
||||
{
|
||||
map(0x00, 0x07).rw(m_ide1, FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w));
|
||||
map(0x08, 0x0f).rw(m_ide2, FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w));
|
||||
// map(0x20, 0x23).select(0x18) Channel # (bit 5) Drive # (bit 3) PIO
|
||||
// map(0x24, 0x27).select(0x18) Channel # (bit 5) Drive # (bit 3) DMA Control
|
||||
// map(0x20, 0x23).select(0x18) Channel # (bit 5) Drive # (bit 3) PIO
|
||||
// map(0x24, 0x27).select(0x18) Channel # (bit 5) Drive # (bit 3) DMA Control
|
||||
}
|
||||
|
||||
void mediagx_cs5530_ide_device::device_start()
|
||||
|
@ -35,8 +35,8 @@ protected:
|
||||
|
||||
// virtual void reset_all_mappings() override;
|
||||
|
||||
// virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
|
||||
// uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override;
|
||||
// virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
|
||||
// uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override;
|
||||
|
||||
virtual void config_map(address_map &map) override;
|
||||
|
||||
|
@ -58,11 +58,11 @@ void mediagx_host_device::superio_if_w(offs_t offset, u8 data)
|
||||
|
||||
void mediagx_host_device::superio_map(address_map &map)
|
||||
{
|
||||
// map(0x20, 0x20) PCR
|
||||
// map(0xb0, 0xb0) SMHR0
|
||||
// map(0xb1, 0xb1) SMHR1
|
||||
// map(0xb2, 0xb2) SMHR2
|
||||
// map(0xb3, 0xb3) SMHR3
|
||||
// map(0x20, 0x20) PCR
|
||||
// map(0xb0, 0xb0) SMHR0
|
||||
// map(0xb1, 0xb1) SMHR1
|
||||
// map(0xb2, 0xb2) SMHR2
|
||||
// map(0xb3, 0xb3) SMHR3
|
||||
// GCR
|
||||
map(0xb8, 0xb8).lrw8(
|
||||
NAME([this] () {
|
||||
@ -75,13 +75,13 @@ void mediagx_host_device::superio_map(address_map &map)
|
||||
remap_cb();
|
||||
})
|
||||
);
|
||||
// map(0xb9, 0xb9) VGACTL
|
||||
// map(0xba, 0xbd) VGAM0
|
||||
// map(0xc1, 0xc1) CCR1
|
||||
// map(0xc2, 0xc2) CCR2
|
||||
// map(0xc3, 0xc3) CCR3
|
||||
// map(0xe8, 0xe8) CCR4
|
||||
// map(0xeb, 0xeb) CCR7
|
||||
// map(0xb9, 0xb9) VGACTL
|
||||
// map(0xba, 0xbd) VGAM0
|
||||
// map(0xc1, 0xc1) CCR1
|
||||
// map(0xc2, 0xc2) CCR2
|
||||
// map(0xc3, 0xc3) CCR3
|
||||
// map(0xe8, 0xe8) CCR4
|
||||
// map(0xeb, 0xeb) CCR7
|
||||
// DIR0
|
||||
map(0xfe, 0xfe).lr8(
|
||||
NAME([] () {
|
||||
@ -91,7 +91,7 @@ void mediagx_host_device::superio_map(address_map &map)
|
||||
return 0x40 | 0x05;
|
||||
})
|
||||
);
|
||||
// map(0xff, 0xff) DIR1
|
||||
// map(0xff, 0xff) DIR1
|
||||
}
|
||||
|
||||
device_memory_interface::space_config_vector mediagx_host_device::memory_space_config() const
|
||||
@ -249,8 +249,8 @@ void mediagx_host_device::map_extra(
|
||||
|
||||
void mediagx_host_device::gxbase_map(address_map &map)
|
||||
{
|
||||
// 0x001000 scratchpad
|
||||
// 0x008000 Internal bus I/F Unit
|
||||
// 0x001000 scratchpad
|
||||
// 0x008000 Internal bus I/F Unit
|
||||
map(0x008004, 0x00800f).lrw32(
|
||||
NAME([this] (offs_t offset) {
|
||||
return m_bc_xmap[offset];
|
||||
@ -260,10 +260,10 @@ void mediagx_host_device::gxbase_map(address_map &map)
|
||||
remap_cb();
|
||||
})
|
||||
);
|
||||
// 0x008100 GFX pipeline
|
||||
// 0x008300 Display controller
|
||||
// 0x008400 Memory controller
|
||||
// 0x008500 Power Management
|
||||
// 0x400000 SMM System Code
|
||||
// 0x800000 GFX memory
|
||||
// 0x008100 GFX pipeline
|
||||
// 0x008300 Display controller
|
||||
// 0x008400 Memory controller
|
||||
// 0x008500 Power Management
|
||||
// 0x400000 SMM System Code
|
||||
// 0x800000 GFX memory
|
||||
}
|
||||
|
@ -66,4 +66,4 @@ private:
|
||||
|
||||
DECLARE_DEVICE_TYPE(MEDIAGX_HOST, mediagx_host_device)
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@ -524,7 +524,7 @@ void pci_bridge_device::device_start()
|
||||
if(card) {
|
||||
int id = slot.get_slot();
|
||||
sub_devices[id << 3] = card;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
const char *t = d.tag();
|
||||
|
@ -465,7 +465,7 @@ bit 0-5 Pattern Display Start Y-Pixel Position.
|
||||
NAME([this] (offs_t offset) {
|
||||
u8 res = (vga.crtc.start_addr_latch & 0x0c0000) >> 18;
|
||||
res |= ((svga.bank_w & 0x30) >> 2);
|
||||
// res |= ((vga.crtc.offset & 0x0300) >> 4);
|
||||
// res |= ((vga.crtc.offset & 0x0300) >> 4);
|
||||
res |= (s3.cr51 & 0x30);
|
||||
return res;
|
||||
}),
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
uint32_t s3d_sub_status_r();
|
||||
void s3d_sub_control_w(uint32_t data);
|
||||
uint32_t s3d_func_ctrl_r();
|
||||
// void s3d_func_ctrl_w(offs_t offset, uint32_t data, u32 mem_mask = ~0);
|
||||
// void s3d_func_ctrl_w(offs_t offset, uint32_t data, u32 mem_mask = ~0);
|
||||
|
||||
uint32_t s3d_register_r(offs_t offset);
|
||||
void s3d_register_w(offs_t offset, uint32_t data);
|
||||
|
@ -17,8 +17,8 @@
|
||||
routing game link data through the ADSP's serial port.
|
||||
* The dedicated twin cab version uses dual port RAM to bridge the two PCBs together (not
|
||||
networked).
|
||||
|
||||
TODO:
|
||||
|
||||
TODO:
|
||||
* ASIC65 for Road Riot tests bad with a "TIMEOUT ERROR" for the internal RAM test. Comm port and checksum test ok
|
||||
* Hook com-link board ADSP-2105 (and serial port) for roadriot and roadriota
|
||||
* Hook dual port RAM and dual PCB comms for roadriotb
|
||||
|
@ -196,8 +196,8 @@ uint32_t shuuz_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
|
||||
if (mo[x] & 0x0e) // solid colors
|
||||
pf[x] = mo[x];
|
||||
else if (mo[x] & 0x01) // shadows
|
||||
pf[x] |= 0x200;
|
||||
}
|
||||
pf[x] |= 0x200;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,18 +6,18 @@
|
||||
|
||||
Bell Fruit Games 96x8 Dot matrix VFD module interface and emulation.
|
||||
|
||||
This was a replacement for the previous 5 x 7 x 16 display.
|
||||
The two displays are meant to be compatible although there are some
|
||||
differences in behaviour when sending undocumented commands or
|
||||
commands with "don't care" bits.
|
||||
This was a replacement for the previous 5 x 7 x 16 display.
|
||||
The two displays are meant to be compatible although there are some
|
||||
differences in behaviour when sending undocumented commands or
|
||||
commands with "don't care" bits.
|
||||
|
||||
TODO: Scrolling text
|
||||
Test sequence
|
||||
Background character
|
||||
Background colour enable/disable/protection
|
||||
LED backlight isn't visually correct. The area outside the 96x8
|
||||
matrix should be brighter than that shining through the gap
|
||||
between the digits.
|
||||
Test sequence
|
||||
Background character
|
||||
Background colour enable/disable/protection
|
||||
LED backlight isn't visually correct. The area outside the 96x8
|
||||
matrix should be brighter than that shining through the gap
|
||||
between the digits.
|
||||
**********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -318,20 +318,20 @@ void bfm_gu96x8m_k657c2_device::update_display()
|
||||
uint8_t const *char_data;
|
||||
bool dp = false;
|
||||
bool blanked = false;
|
||||
|
||||
|
||||
switch(m_blank_control)
|
||||
{
|
||||
case 0:
|
||||
blanked = true;
|
||||
break;
|
||||
|
||||
|
||||
case 1:
|
||||
if(m_window_size == 0 || pos < m_window_start || pos > m_window_end)
|
||||
{
|
||||
blanked = true;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 2:
|
||||
if(m_window_size > 0 && (pos >= m_window_start && pos <= m_window_end))
|
||||
{
|
||||
@ -398,7 +398,7 @@ void bfm_gu96x8m_k657c2_device::write_char(int data)
|
||||
if(m_extra_data_count == 0)
|
||||
{
|
||||
uint8_t *udf = &m_udf[m_extra_data[6] & 0x0f][0];
|
||||
|
||||
|
||||
std::fill(udf,udf + 6,0);
|
||||
|
||||
m_charset_offset[m_extra_data[5] & 0x7f] = (m_extra_data[6] & 0x0f) | (1 << CHAR_AT_UDF);
|
||||
@ -952,7 +952,7 @@ void bfm_gu96x8m_k657c2_device::set_char(int data)
|
||||
{
|
||||
m_chars[m_cursor_pos]=m_charset_offset[data];
|
||||
m_attributes[m_cursor_pos]=0;
|
||||
|
||||
|
||||
if(m_ascii_charset == 0 && (data == 0x6c || data == 0x6e))
|
||||
{
|
||||
m_attributes[m_cursor_pos] |= (1 << AT_DP);
|
||||
@ -995,7 +995,7 @@ TIMER_CALLBACK_MEMBER(bfm_gu96x8m_k657c2_device::frame_update_callback)
|
||||
{
|
||||
m_led_flash_blank=0;
|
||||
}
|
||||
|
||||
|
||||
update_display();
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ protected:
|
||||
|
||||
private:
|
||||
TIMER_CALLBACK_MEMBER(frame_update_callback);
|
||||
|
||||
|
||||
emu_timer *m_frame_timer;
|
||||
|
||||
output_finder<1> m_vfd_background;
|
||||
|
@ -1064,7 +1064,7 @@ void intergames_state::prot_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if (offset == 0xf3)
|
||||
m_crtc_selected = false;
|
||||
|
||||
|
||||
logerror("%s: Writing $#%02X to $%04X\n", machine().describe_context(), data, offset + 0x3600);
|
||||
}
|
||||
|
||||
@ -7665,11 +7665,11 @@ ROM_START( novoplay ) // Similar to Royal Vegas Joker Card
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
Novo Play Club Card
|
||||
Novo Play Club Card
|
||||
V6.2H
|
||||
|
||||
|
||||
Novo Play International.
|
||||
|
||||
|
||||
PCB from Novo Play, rev 1.6 (1992).
|
||||
Similar hardware scheme than Inter Games.
|
||||
*/
|
||||
@ -7693,7 +7693,7 @@ ROM_END
|
||||
V3.3H
|
||||
|
||||
Novo Play International.
|
||||
|
||||
|
||||
PCB from Novo Play, rev 1.5 (1991).
|
||||
Similar hardware scheme than Inter Games.
|
||||
*/
|
||||
@ -8796,7 +8796,7 @@ void intergames_state::init_novop_a()
|
||||
|
||||
rom[0xb25e] = 0xfc;
|
||||
rom[0xadd0] = 0x40;
|
||||
|
||||
|
||||
}
|
||||
|
||||
void intergames_state::init_novop_b()
|
||||
@ -8807,7 +8807,7 @@ void intergames_state::init_novop_b()
|
||||
|
||||
rom[0xb2bf] = 0xfc;
|
||||
rom[0xae31] = 0x40;
|
||||
|
||||
|
||||
}
|
||||
|
||||
void intergames_state::init_intgms()
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
void init_ctunk();
|
||||
void init_jolycdig();
|
||||
void init_impera16();
|
||||
|
||||
|
||||
protected:
|
||||
void funworld_videoram_w(offs_t offset, uint8_t data);
|
||||
void funworld_colorram_w(offs_t offset, uint8_t data);
|
||||
@ -190,8 +190,8 @@ public:
|
||||
|
||||
void init_novop_a();
|
||||
void init_novop_b();
|
||||
void init_intgms();
|
||||
|
||||
void init_intgms();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void machine_reset() override;
|
||||
|
@ -869,7 +869,7 @@ uint32_t hangplt_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma
|
||||
bitmap.fill(m_palette[Which]->pen(0), cliprect);
|
||||
|
||||
// FIXME: service mode cross hatch comes from this layer (which somehow also disables 3d render)
|
||||
// m_k001604[Which]->draw_back_layer(screen, bitmap, cliprect);
|
||||
// m_k001604[Which]->draw_back_layer(screen, bitmap, cliprect);
|
||||
m_voodoo[Which]->update(bitmap, cliprect);
|
||||
m_k001604[Which]->draw_front_layer(screen, bitmap, cliprect);
|
||||
|
||||
|
@ -133,7 +133,7 @@ license:CC0-1.0
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.3" width="1" height="0.4" />
|
||||
</text>
|
||||
</element>
|
||||
</element>
|
||||
|
||||
<element name="cpanel">
|
||||
<rect>
|
||||
|
@ -268,7 +268,7 @@ license:CC0
|
||||
|
||||
|
||||
<!-- the rest of the elements tend to be used for 7-segs
|
||||
so render them as both -->
|
||||
so render them as both -->
|
||||
<repeat count="12">
|
||||
<param name="s" start="160" incrment="8"/>
|
||||
<param name="x" start="280" increment="4"/>
|
||||
|
@ -1624,7 +1624,7 @@ void defender_state::defender(machine_config &config)
|
||||
ADDRESS_MAP_BANK(config, m_bankc000).set_map(&defender_state::bankc000_map).set_options(ENDIANNESS_BIG, 8, 16, 0x1000);
|
||||
m_screen->set_visarea(12, 304-1, 7, 247-1);
|
||||
}
|
||||
|
||||
|
||||
void defender_state::defender_6802snd(machine_config &config)
|
||||
{
|
||||
defender(config);
|
||||
|
@ -738,10 +738,10 @@ void gi6809_state::jesterch(machine_config &config)
|
||||
m_pia[1]->writepa_handler().set(FUNC(gi6809_state::snd_mux_w));
|
||||
m_pia[1]->readpb_handler().set(FUNC(gi6809_state::gi6809_mux_port_r));
|
||||
m_pia[1]->writepb_handler().set(FUNC(gi6809_state::lamps3_w));
|
||||
|
||||
|
||||
//m_pia[1]->readca1_handler() coin in upper opto to be implemented
|
||||
//m_pia[1]->readca2_handler() coin in lower opto to be implemented
|
||||
|
||||
//m_pia[1]->readca2_handler() coin in lower opto to be implemented
|
||||
|
||||
m_pia[1]->ca2_handler().set_nop();
|
||||
m_pia[1]->cb2_handler().set_nop();
|
||||
m_pia[1]->irqb_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
|
||||
|
@ -83,9 +83,9 @@ private:
|
||||
|
||||
void tile_w(offs_t offset, uint8_t data);
|
||||
void attr_w(offs_t offset, uint8_t data);
|
||||
void overlay_control_w(uint8_t data);
|
||||
void overlay_control_w(uint8_t data);
|
||||
|
||||
u8 m_overlay_ctrl = 0;
|
||||
u8 m_overlay_ctrl = 0;
|
||||
|
||||
uint8_t z80_2_ldp_read();
|
||||
uint8_t z80_2_unknown_read();
|
||||
@ -129,14 +129,14 @@ void istellar_state::video_start()
|
||||
|
||||
uint32_t istellar_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
// TODO: should really draw transparent when bit 7 disabled, also gradient to be verified.
|
||||
// (May actually be an opaque flag for tilemap + pal bank?)
|
||||
// TODO: should really draw transparent when bit 7 disabled, also gradient to be verified.
|
||||
// (May actually be an opaque flag for tilemap + pal bank?)
|
||||
bitmap.fill(BIT(m_overlay_ctrl, 7) ? rgb_t(0x00, 0x00, 0xff) : rgb_t(0, 0, 0), cliprect);
|
||||
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
|
||||
// sprites, above tilemap according to PCB refs for both games
|
||||
// (Daphne is wrong and draws below, unless a bit is set for enemy sprites?)
|
||||
// (Daphne is wrong and draws below, unless a bit is set for enemy sprites?)
|
||||
for (int i = 0; i < m_sprite_ram.bytes(); i += 4)
|
||||
{
|
||||
u8 const attr = m_sprite_ram[i + 2];
|
||||
@ -196,9 +196,9 @@ void istellar_state::z80_2_ldp_write(uint8_t data)
|
||||
|
||||
void istellar_state::overlay_control_w(uint8_t data)
|
||||
{
|
||||
m_overlay_ctrl = data;
|
||||
if (data & 0x7f)
|
||||
logerror("overlay_control_w: %02x\n", data);
|
||||
m_overlay_ctrl = data;
|
||||
if (data & 0x7f)
|
||||
logerror("overlay_control_w: %02x\n", data);
|
||||
}
|
||||
|
||||
// PROGRAM MAPS
|
||||
@ -232,7 +232,7 @@ void istellar_state::z80_0_io(address_map &map)
|
||||
map(0x00, 0x00).portr("IN0");
|
||||
map(0x02, 0x02).portr("DSW1");
|
||||
map(0x03, 0x03).portr("DSW2");
|
||||
map(0x04, 0x04).w(FUNC(istellar_state::overlay_control_w));
|
||||
map(0x04, 0x04).w(FUNC(istellar_state::overlay_control_w));
|
||||
map(0x05, 0x05).r("latch1", FUNC(generic_latch_8_device::read)).w("latch2", FUNC(generic_latch_8_device::write));
|
||||
}
|
||||
|
||||
|
@ -745,4 +745,4 @@ ROM_END
|
||||
*********************************************/
|
||||
|
||||
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS
|
||||
GAME(1994, jackhous, 0, jackhouse, jackhouse, jackhouse_state, empty_init, ROT0, "Chain Leisure Co., Ltd", "Jack House", 0)
|
||||
GAME(1994, jackhous, 0, jackhouse, jackhouse, jackhouse_state, empty_init, ROT0, "Chain Leisure Co., Ltd", "Jack House", 0)
|
||||
|
@ -487,22 +487,22 @@ void hotslots_state::write_ds1207_ds2401(offs_t offset, uint8_t data)
|
||||
/*
|
||||
void hotslots_state::output_w(offs_t offset, uint16_t data)
|
||||
{
|
||||
// bit 0 - counter out
|
||||
// bit 1 - counter key switch
|
||||
// bit 2 - ??
|
||||
// bit 3 - counter hopper refill
|
||||
// bit 4 - counter cashbox
|
||||
// bit 5 - ??
|
||||
// bit 6 - ??
|
||||
// bit 7 - hold 3 lamp
|
||||
// bit 8 - ??
|
||||
// bit 9 - hold 1 lamp
|
||||
// bit 10 - hold 5 lamp
|
||||
// bit 11 - hold 2 lamp
|
||||
// bit 12 - hold 4 lamp
|
||||
// bit 13 - clear lamp
|
||||
// bit 14 - hopper drive
|
||||
// bit 15 - counter in
|
||||
// bit 0 - counter out
|
||||
// bit 1 - counter key switch
|
||||
// bit 2 - ??
|
||||
// bit 3 - counter hopper refill
|
||||
// bit 4 - counter cashbox
|
||||
// bit 5 - ??
|
||||
// bit 6 - ??
|
||||
// bit 7 - hold 3 lamp
|
||||
// bit 8 - ??
|
||||
// bit 9 - hold 1 lamp
|
||||
// bit 10 - hold 5 lamp
|
||||
// bit 11 - hold 2 lamp
|
||||
// bit 12 - hold 4 lamp
|
||||
// bit 13 - clear lamp
|
||||
// bit 14 - hopper drive
|
||||
// bit 15 - counter in
|
||||
}
|
||||
*/
|
||||
|
||||
@ -585,7 +585,7 @@ void hotslots_state::simpbest_map(address_map &map)
|
||||
map(0x00403007, 0x00403007).w("ramdac", FUNC(ramdac_device::index_w));
|
||||
map(0x00404003, 0x00404003).r("ramdac", FUNC(ramdac_device::pal_r));
|
||||
|
||||
map(0x00405003, 0x00405003).w("ssg", FUNC(ymz284_device::data_w));
|
||||
map(0x00405003, 0x00405003).w("ssg", FUNC(ymz284_device::data_w));
|
||||
map(0x00406001, 0x00406001).w("ssg", FUNC(ymz284_device::address_w));
|
||||
|
||||
map(0x00407000, 0x00407020).rw("rtc", FUNC(rtc72421_device::read), FUNC(rtc72421_device::write)).umask16(0x00ff);
|
||||
@ -602,8 +602,8 @@ void hotslots_state::simpbest_map(address_map &map)
|
||||
static INPUT_PORTS_START( magicard )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("Remote 2")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Remote 1")
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("Remote 2")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Remote 1")
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_POKER_CANCEL )
|
||||
@ -615,9 +615,9 @@ static INPUT_PORTS_START( magicard )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_POKER_HOLD4 )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Pay/Hopper Out")
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Count") PORT_CODE(KEYCODE_E)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Books3/Service") PORT_CODE(KEYCODE_U)
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Pay/Hopper Out")
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Count") PORT_CODE(KEYCODE_E)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Books3/Service") PORT_CODE(KEYCODE_U)
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_DIPNAME( 0x01, 0x01, "Keyboard Test" ) PORT_DIPLOCATION("SW1:8")
|
||||
@ -715,11 +715,11 @@ static INPUT_PORTS_START( lucky7i )
|
||||
|
||||
PORT_MODIFY("IN0")
|
||||
|
||||
// PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Win Plan Scroll/Collect")
|
||||
// PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Win Plan Scroll/Collect")
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet (Einsatz)")
|
||||
// PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start/Gamble")
|
||||
// PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Rental Book Keeping")
|
||||
// PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
// PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start/Gamble")
|
||||
// PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Rental Book Keeping")
|
||||
// PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_MODIFY("IN1")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
|
||||
@ -747,9 +747,9 @@ static INPUT_PORTS_START( lucky7i )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
// PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Attendant Collect")
|
||||
// PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
// PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
// PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Attendant Collect")
|
||||
// PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
// PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -804,8 +804,8 @@ INPUT_PORTS_END
|
||||
static INPUT_PORTS_START( pokeri )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("Remote 2")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Remote 1")
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("Remote 2")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Remote 1")
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_POKER_CANCEL )
|
||||
@ -817,33 +817,33 @@ static INPUT_PORTS_START( pokeri )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_POKER_HOLD4 )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Pay/Hopper Out")
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Count") PORT_CODE(KEYCODE_E)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Books3/Service") PORT_CODE(KEYCODE_U)
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Pay/Hopper Out")
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Count") PORT_CODE(KEYCODE_E)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Books3/Service") PORT_CODE(KEYCODE_U)
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_DIPNAME( 0x01, 0x01, "Service Test" ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPNAME( 0x01, 0x01, "Service Test" ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Remote 1" ) PORT_DIPLOCATION("SW1:7")
|
||||
PORT_DIPNAME( 0x02, 0x02, "Remote 1" ) PORT_DIPLOCATION("SW1:7")
|
||||
PORT_DIPSETTING( 0x02, "100" )
|
||||
PORT_DIPSETTING( 0x00, "10" )
|
||||
PORT_DIPNAME( 0x04, 0x04, "Coin 2" ) PORT_DIPLOCATION("SW1:6")
|
||||
PORT_DIPNAME( 0x04, 0x04, "Coin 2" ) PORT_DIPLOCATION("SW1:6")
|
||||
PORT_DIPSETTING( 0x04, "10" )
|
||||
PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "Coin 1" ) PORT_DIPLOCATION("SW1:5")
|
||||
PORT_DIPNAME( 0x08, 0x08, "Coin 1" ) PORT_DIPLOCATION("SW1:5")
|
||||
PORT_DIPSETTING( 0x08, "10" )
|
||||
PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Cards Back" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPNAME( 0x10, 0x10, "Cards Back" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x10, "Normal Clean" )
|
||||
PORT_DIPSETTING( 0x00, "Impera Logo" )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Remote 2" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPNAME( 0x20, 0x20, "Remote 2" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x20, "100" )
|
||||
PORT_DIPSETTING( 0x00, "1M" )
|
||||
PORT_DIPNAME( 0x40, 0x40, "DSW 1:2, unknown" ) PORT_DIPLOCATION("SW1:2")
|
||||
PORT_DIPNAME( 0x40, 0x40, "DSW 1:2, unknown" ) PORT_DIPLOCATION("SW1:2")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "DSW 1:1, unknown" ) PORT_DIPLOCATION("SW1:1")
|
||||
PORT_DIPNAME( 0x80, 0x80, "DSW 1:1, unknown" ) PORT_DIPLOCATION("SW1:1")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
@ -876,9 +876,9 @@ static INPUT_PORTS_START( simpbest )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_POKER_HOLD4 )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Pay/Hopper Out")
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Count") PORT_CODE(KEYCODE_E)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Service") PORT_CODE(KEYCODE_U)
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Pay/Hopper Out")
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Count") PORT_CODE(KEYCODE_E)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Service") PORT_CODE(KEYCODE_U)
|
||||
|
||||
PORT_START("IN1") // just for testing... the board lacks of them.
|
||||
PORT_DIPNAME( 0x01, 0x00, "DIP switches?" ) PORT_DIPLOCATION("SW1:8")
|
||||
@ -912,7 +912,7 @@ static INPUT_PORTS_START( simpbest )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Not used") PORT_CODE(KEYCODE_S)
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Not used") PORT_CODE(KEYCODE_D)
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Counter Check") PORT_CODE(KEYCODE_F)
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Key Alarm") PORT_CODE(KEYCODE_G) // "A L A R A M" in the I/O test.
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Key Alarm") PORT_CODE(KEYCODE_G) // "A L A R A M" in the I/O test.
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Full") PORT_CODE(KEYCODE_R)
|
||||
|
||||
INPUT_PORTS_END
|
||||
@ -1126,7 +1126,7 @@ void hotslots_state::simpbest(machine_config &config)
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &hotslots_state::simpbest_map);
|
||||
|
||||
// m_screen->set_visarea(4*8, 88*8-1, 6*8, 37*8);
|
||||
// m_screen->set_visarea(4*8, 88*8-1, 6*8, 37*8);
|
||||
m_screen->screen_vblank().set(FUNC(hotslots_state::cpu_int1));
|
||||
|
||||
I2C_24C04(config, m_i2cmem).set_e0(1);
|
||||
@ -2377,7 +2377,7 @@ ROM_END
|
||||
2001, Kajot.
|
||||
|
||||
-----------------------
|
||||
|
||||
|
||||
Hardware specs....
|
||||
|
||||
IC1:
|
||||
|
@ -888,35 +888,35 @@ static INPUT_PORTS_START( goldnjkr )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-8") PORT_CODE(KEYCODE_L) // unknown
|
||||
|
||||
PORT_START("SW1") // 0x1100
|
||||
PORT_DIPNAME( 0x01, 0x01, "DSW #1" ) PORT_DIPLOCATION("SW1:1")
|
||||
PORT_DIPNAME( 0x01, 0x01, "DSW #1" ) PORT_DIPLOCATION("SW1:1")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_DIPNAME( 0x02, 0x02, "DSW #2" ) PORT_DIPLOCATION("SW1:2")
|
||||
PORT_DIPNAME( 0x02, 0x02, "DSW #2" ) PORT_DIPLOCATION("SW1:2")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_DIPNAME( 0x04, 0x04, "DSW #3" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPNAME( 0x04, 0x04, "DSW #3" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_DIPNAME( 0x08, 0x08, "DSW #4" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPNAME( 0x08, 0x08, "DSW #4" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_DIPNAME( 0x10, 0x10, "DSW #5" ) PORT_DIPLOCATION("SW1:5")
|
||||
PORT_DIPNAME( 0x10, 0x10, "DSW #5" ) PORT_DIPLOCATION("SW1:5")
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_DIPNAME( 0x20, 0x20, "DSW #6" ) PORT_DIPLOCATION("SW1:6")
|
||||
PORT_DIPNAME( 0x20, 0x20, "DSW #6" ) PORT_DIPLOCATION("SW1:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_DIPNAME( 0x40, 0x40, "DSW #7") PORT_DIPLOCATION("SW1:7")
|
||||
PORT_DIPNAME( 0x40, 0x40, "DSW #7") PORT_DIPLOCATION("SW1:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_DIPNAME( 0x80, 0x80, "DSW #8" ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPNAME( 0x80, 0x80, "DSW #8" ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
@ -14,7 +14,7 @@ All PlayCenter machines:
|
||||
-PCI Ethernet card (RTL8029AS chipset, PCI).
|
||||
-Trident Blade3D/MVP4 AGP video.
|
||||
-56K Modem (S56MR, HAMR5603 + Si3014-KS).
|
||||
-Elo Touch CTR-231000 touch screen (87C51-based, undumped) or custom touch I/O PCB named
|
||||
-Elo Touch CTR-231000 touch screen (87C51-based, undumped) or custom touch I/O PCB named
|
||||
"Touch Presas" with unknown (and undumped) MCU.
|
||||
"K6" version:
|
||||
-Unknown AMD K6 CPU based hardware.
|
||||
|
@ -22,12 +22,12 @@
|
||||
|
||||
#include "thayers.lh"
|
||||
|
||||
#define LOG_IRQS (1U << 1)
|
||||
#define LOG_COP (1U << 2)
|
||||
#define LOG_KEYBOARD (1U << 3)
|
||||
#define LOG_PLAYER (1U << 4)
|
||||
#define LOG_COINS (1U << 5)
|
||||
#define LOG_ALL (LOG_IRQS | LOG_COP | LOG_KEYBOARD | LOG_PLAYER | LOG_COINS)
|
||||
#define LOG_IRQS (1U << 1)
|
||||
#define LOG_COP (1U << 2)
|
||||
#define LOG_KEYBOARD (1U << 3)
|
||||
#define LOG_PLAYER (1U << 4)
|
||||
#define LOG_COINS (1U << 5)
|
||||
#define LOG_ALL (LOG_IRQS | LOG_COP | LOG_KEYBOARD | LOG_PLAYER | LOG_COINS)
|
||||
|
||||
#define VERBOSE (0)
|
||||
#include "logmacro.h"
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
void pc98lt_state::lt_palette(palette_device &palette) const
|
||||
{
|
||||
// TODO: confirm values
|
||||
// TODO: confirm values
|
||||
palette.set_pen_color(0, 160, 168, 160);
|
||||
palette.set_pen_color(1, 48, 56, 16);
|
||||
}
|
||||
|
@ -602,7 +602,7 @@ void pcipc_state::pcipc(machine_config &config)
|
||||
serport1.ri_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::nri2_w));
|
||||
serport1.cts_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::ncts2_w));
|
||||
|
||||
// SW1000XG(config, "pci:11.0");
|
||||
// SW1000XG(config, "pci:11.0");
|
||||
}
|
||||
|
||||
void pcipc_state::pcipctx(machine_config &config)
|
||||
|
@ -118,13 +118,13 @@ chdman createhd -o ST125N.chd -chs 41921,1,1 -ss 512
|
||||
#define MOUSE_INT_ENABLE 0x08
|
||||
#define PC8031_INT_ENABLE 0x10
|
||||
|
||||
#define CONTROLLER_NONE 0x00
|
||||
#define CONTROLLER_LEFT 0x01
|
||||
#define CONTROLLER_RIGHT 0x02
|
||||
#define CONTROLLER_DOWN 0x04
|
||||
#define CONTROLLER_UP 0x08
|
||||
#define CONTROLLER_BUTTON0 0x10
|
||||
#define CONTROLLER_BUTTON1 0x20
|
||||
#define CONTROLLER_NONE 0x00
|
||||
#define CONTROLLER_LEFT 0x01
|
||||
#define CONTROLLER_RIGHT 0x02
|
||||
#define CONTROLLER_DOWN 0x04
|
||||
#define CONTROLLER_UP 0x08
|
||||
#define CONTROLLER_BUTTON0 0x10
|
||||
#define CONTROLLER_BUTTON1 0x20
|
||||
|
||||
// Frequency in Hz to poll for mouse movement.
|
||||
#define MOUSE_POLL_FREQUENCY 500
|
||||
@ -1210,7 +1210,7 @@ uint8_t rmnimbus_state::nimbus_mouse_js_r()
|
||||
|
||||
*/
|
||||
uint8_t result = m_nimbus_mouse.m_reg0a4 | 0xc0;
|
||||
|
||||
|
||||
// set button bits if either mouse or joystick buttons are pressed
|
||||
result |= m_io_mouse_button->read();
|
||||
// NB only the button bits of the joystick(s) are read from this port
|
||||
|
@ -81,8 +81,8 @@ private:
|
||||
void io_map(address_map &map);
|
||||
void mem_map(address_map &map);
|
||||
|
||||
u8 bus_pio_r(offs_t offset) { return m_bus->space(AS_IO).read_byte(offset); }
|
||||
void bus_pio_w(offs_t offset, u8 data) { m_bus->space(AS_IO).write_byte(offset, data); }
|
||||
u8 bus_pio_r(offs_t offset) { return m_bus->space(AS_IO).read_byte(offset); }
|
||||
void bus_pio_w(offs_t offset, u8 data) { m_bus->space(AS_IO).write_byte(offset, data); }
|
||||
};
|
||||
|
||||
|
||||
@ -107,15 +107,15 @@ void a7150_state::io_map(address_map &map)
|
||||
map.unmap_value_high();
|
||||
// map PIO to Multibus by default
|
||||
map(0x0000, 0xffff).rw(FUNC(a7150_state::bus_pio_r), FUNC(a7150_state::bus_pio_w));
|
||||
// map(0x0000, 0x0003).unmaprw(); // memory parity 1-2
|
||||
// map(0x0040, 0x0043).unmaprw(); // memory parity 3-4
|
||||
// map(0x0000, 0x0003).unmaprw(); // memory parity 1-2
|
||||
// map(0x0040, 0x0043).unmaprw(); // memory parity 3-4
|
||||
map(0x004a, 0x004a).w("isbc_215g", FUNC(isbc_215g_device::write)); // KES board
|
||||
map(0x00c0, 0x00c3).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
|
||||
map(0x00c8, 0x00cf).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
||||
map(0x00d0, 0x00d7).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0x00d8, 0x00db).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
// map(0x0300, 0x031f).unmaprw(); // ASP board #1
|
||||
// map(0x0320, 0x033f).unmaprw(); // ASP board #2
|
||||
// map(0x0300, 0x031f).unmaprw(); // ASP board #1
|
||||
// map(0x0320, 0x033f).unmaprw(); // ASP board #2
|
||||
}
|
||||
|
||||
static DEVICE_INPUT_DEFAULTS_START( kbd_rs232_defaults )
|
||||
|
@ -123,7 +123,7 @@ uint32_t dcon_state::pri_cb(uint8_t pri, uint8_t ext)
|
||||
case 0: return 0xf0; // above foreground layer
|
||||
case 1: return 0xfc; // above midground layer
|
||||
case 2: return 0xfe; // above background layer
|
||||
case 3:
|
||||
case 3:
|
||||
default: return 0; // above text layer
|
||||
}
|
||||
}
|
||||
|
@ -1,26 +1,26 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Graves, Angelo Salese, David Haywood, Tomasz Slanina, Carlos A. Lozano, Bryan McPhail, Pierpaolo Prazzoli
|
||||
/*
|
||||
Seibu Kaihatsu SEI0210/SEI0211/SEI0220(BP) Sprite generator emulation
|
||||
Seibu Kaihatsu SEI0210/SEI0211/SEI0220(BP) Sprite generator emulation
|
||||
|
||||
Used by Seibu Kaihatsu at 1990 to 1994, SEI0210/SEI0211 is paired with
|
||||
SEI0220(BP).
|
||||
Used by Seibu Kaihatsu at 1990 to 1994, SEI0210/SEI0211 is paired with
|
||||
SEI0220(BP).
|
||||
|
||||
SEI0210 and SEI0211 is similar, but coordinate format is different.
|
||||
Another difference between these chips are still unknown.
|
||||
SEI0210 and SEI0211 is similar, but coordinate format is different.
|
||||
Another difference between these chips are still unknown.
|
||||
|
||||
Used in:
|
||||
banprestoms.cpp
|
||||
bloodbro.cpp*
|
||||
dcon.cpp
|
||||
goodejan.cpp
|
||||
legionna.cpp
|
||||
sengokmj.cpp
|
||||
|
||||
* Using alternative sprite format.
|
||||
Used in:
|
||||
banprestoms.cpp
|
||||
bloodbro.cpp*
|
||||
dcon.cpp
|
||||
goodejan.cpp
|
||||
legionna.cpp
|
||||
sengokmj.cpp
|
||||
|
||||
TODO:
|
||||
- flip screen support
|
||||
* Using alternative sprite format.
|
||||
|
||||
TODO:
|
||||
- flip screen support
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
@ -69,7 +69,7 @@ void sei0210_device::device_reset()
|
||||
Common sprite format (8 byte per sprites)
|
||||
|
||||
Offset Bit Description
|
||||
fedc ba98 7654 3210
|
||||
fedc ba98 7654 3210
|
||||
00 x--- ---- ---- ---- Enable this sprite
|
||||
-x-- ---- ---- ---- Flip X
|
||||
--x- ---- ---- ---- Flip Y
|
||||
@ -91,7 +91,7 @@ Unmarked bits are unused/unknown.
|
||||
Blood Bros. sprite format (8 byte per sprites)
|
||||
|
||||
Offset Bit Description
|
||||
fedc ba98 7654 3210
|
||||
fedc ba98 7654 3210
|
||||
00 x--- ---- ---- ---- Disable this sprite
|
||||
-x-- ---- ---- ---- Flip Y
|
||||
--x- ---- ---- ---- Flip X
|
||||
|
@ -199,7 +199,7 @@ uint32_t pkspirit_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
|
||||
}
|
||||
|
||||
//if (sp0 != 0x0000)
|
||||
// printf("sp%03x : %04x %04x %04x %04x\n", i, sp0, sp1, sp2, sp3);
|
||||
// printf("sp%03x : %04x %04x %04x %04x\n", i, sp0, sp1, sp2, sp3);
|
||||
|
||||
if (sp0 != 0x0000)
|
||||
{
|
||||
|
@ -5564,7 +5564,7 @@ void taitof2_state::init_driveout()
|
||||
save_item(NAME(m_nibble));
|
||||
}
|
||||
|
||||
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME
|
||||
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME
|
||||
|
||||
GAME( 1988, finalb, 0, finalb, finalb, taitof2_state, init_finalb, ROT0, "Taito Corporation Japan", "Final Blow (World)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, finalbu, finalb, finalb, finalbu, taitof2_state, init_finalb, ROT0, "Taito America Corporation", "Final Blow (US)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -2,86 +2,86 @@
|
||||
// copyright-holders:Frode van der Meeren
|
||||
/***************************************************************************
|
||||
|
||||
Tandberg TDV-2115 Terminal module, "Display Logic" version
|
||||
Tandberg TDV-2115 Terminal module, "Display Logic" version
|
||||
|
||||
The "Display Logic" module provided the terminal functionality for
|
||||
most of Tandbergs TDV-2100 series products. Most notably, standalone
|
||||
it was available as the digital portion of the TDV-2115L terminal.
|
||||
Being divided across two boards, Tandberg order-numbers for the module
|
||||
is 960309 and 960310. These were connected together in reserved slots
|
||||
on a bigger backplane.
|
||||
The "Display Logic" module provided the terminal functionality for
|
||||
most of Tandbergs TDV-2100 series products. Most notably, standalone
|
||||
it was available as the digital portion of the TDV-2115L terminal.
|
||||
Being divided across two boards, Tandberg order-numbers for the module
|
||||
is 960309 and 960310. These were connected together in reserved slots
|
||||
on a bigger backplane.
|
||||
|
||||
Being a 1976-design, the module does not feature any CPU, but it does
|
||||
have an interface to an optional CPU module through the backplane of
|
||||
the machines it was installed in. For instance, the TDV-2114 computer
|
||||
or the TDV-2116 advanced terminal both has a CPU module featuring the
|
||||
Intel 8080 along with 2KB of RAM and up to 8KB of ROM. More could be
|
||||
added using additional memory modules. While the TDV-2115/16 only has
|
||||
enough space for two extra modules besides the terminal module, the
|
||||
TDV-2114 can fit up to 8 extra modules.
|
||||
Being a 1976-design, the module does not feature any CPU, but it does
|
||||
have an interface to an optional CPU module through the backplane of
|
||||
the machines it was installed in. For instance, the TDV-2114 computer
|
||||
or the TDV-2116 advanced terminal both has a CPU module featuring the
|
||||
Intel 8080 along with 2KB of RAM and up to 8KB of ROM. More could be
|
||||
added using additional memory modules. While the TDV-2115/16 only has
|
||||
enough space for two extra modules besides the terminal module, the
|
||||
TDV-2114 can fit up to 8 extra modules.
|
||||
|
||||
The terminal module has circuit to beep a dynamic speaker. The volume
|
||||
is selectable using a potentiometer on the front. This beeps a 2KHz
|
||||
short tone on manual typing at column 72, as well as on the BEL ASCII
|
||||
control-code. It is not possible to turn this entirely off.
|
||||
The terminal module has circuit to beep a dynamic speaker. The volume
|
||||
is selectable using a potentiometer on the front. This beeps a 2KHz
|
||||
short tone on manual typing at column 72, as well as on the BEL ASCII
|
||||
control-code. It is not possible to turn this entirely off.
|
||||
|
||||
For characters, the terminal uses up to four font-ROMs, each containing
|
||||
thirty-two 14x8 bitmaps. Typically three of these ROM slots will be filled,
|
||||
for ASCII character 0x20 to 0x7f. There is also two PROM used as logic-
|
||||
function lookup-tables for deriving at the correct RAM addresses.
|
||||
For characters, the terminal uses up to four font-ROMs, each containing
|
||||
thirty-two 14x8 bitmaps. Typically three of these ROM slots will be filled,
|
||||
for ASCII character 0x20 to 0x7f. There is also two PROM used as logic-
|
||||
function lookup-tables for deriving at the correct RAM addresses.
|
||||
|
||||
The UART on the board is the AY-5-1013, and the keyboard has priority
|
||||
over the UART in TTY CPU-less mode. All symbols received from keyboard
|
||||
and UART are considered chars, and control characters will be proccessed
|
||||
if sent to local. The path from keyboard/UART Rx to local is toggeled by
|
||||
the LINE key. Likewise, the path from keyboard to UART Tx is controlled
|
||||
by the TRANS key. In CPU mode, automatic paths are disabled and the code
|
||||
running on the CPU module will ultimately control the data-flow. This is
|
||||
done using strobes from the IO-port address-decoder on the CPU module
|
||||
itself. An interrupt is used to request action from the CPU, and there
|
||||
is also another interrupt triggering on the 50Hz VSync.
|
||||
The UART on the board is the AY-5-1013, and the keyboard has priority
|
||||
over the UART in TTY CPU-less mode. All symbols received from keyboard
|
||||
and UART are considered chars, and control characters will be proccessed
|
||||
if sent to local. The path from keyboard/UART Rx to local is toggeled by
|
||||
the LINE key. Likewise, the path from keyboard to UART Tx is controlled
|
||||
by the TRANS key. In CPU mode, automatic paths are disabled and the code
|
||||
running on the CPU module will ultimately control the data-flow. This is
|
||||
done using strobes from the IO-port address-decoder on the CPU module
|
||||
itself. An interrupt is used to request action from the CPU, and there
|
||||
is also another interrupt triggering on the 50Hz VSync.
|
||||
|
||||
It is also worth noting that the terminal module provides the clock base
|
||||
for the CPU module on actual hardware.
|
||||
It is also worth noting that the terminal module provides the clock base
|
||||
for the CPU module on actual hardware.
|
||||
|
||||
|
||||
Input stobes:
|
||||
Input stobes:
|
||||
|
||||
Function: Hook:
|
||||
* Get Rx char from UART CPU module, IO E4 Read
|
||||
* Send Tx data to UART CPU module, IO E4 Write
|
||||
* Get data from local at cursor++ CPU module, IO E5 Read
|
||||
* Send char to local at cursor++ CPU module, IO E5 Write
|
||||
* Get char from keyboard CPU module, IO E6 Read
|
||||
* Send data to local at cursor++ CPU module, IO E6 Write
|
||||
* Get Terminal status CPU module, IO E7 Read
|
||||
* Set Terminal control CPU module, IO E7 Write
|
||||
* Get Interrupt status CPU module, IO F6 Read
|
||||
* Get UART status CPU module, IO F7 Read
|
||||
* Process pending keyboard char Keyboard, pending character
|
||||
* Clear screen Keyboard, CLEAR keyswitch
|
||||
* Toggle TRANSMIT Keyboard, TRANS keyswitch
|
||||
* Toggle ON-LINE Keyboard, LINE keyswitch
|
||||
* Force UART out high Keyboard, BREAK keyswitch
|
||||
Function: Hook:
|
||||
* Get Rx char from UART CPU module, IO E4 Read
|
||||
* Send Tx data to UART CPU module, IO E4 Write
|
||||
* Get data from local at cursor++ CPU module, IO E5 Read
|
||||
* Send char to local at cursor++ CPU module, IO E5 Write
|
||||
* Get char from keyboard CPU module, IO E6 Read
|
||||
* Send data to local at cursor++ CPU module, IO E6 Write
|
||||
* Get Terminal status CPU module, IO E7 Read
|
||||
* Set Terminal control CPU module, IO E7 Write
|
||||
* Get Interrupt status CPU module, IO F6 Read
|
||||
* Get UART status CPU module, IO F7 Read
|
||||
* Process pending keyboard char Keyboard, pending character
|
||||
* Clear screen Keyboard, CLEAR keyswitch
|
||||
* Toggle TRANSMIT Keyboard, TRANS keyswitch
|
||||
* Toggle ON-LINE Keyboard, LINE keyswitch
|
||||
* Force UART out high Keyboard, BREAK keyswitch
|
||||
|
||||
Output strobes:
|
||||
Output strobes:
|
||||
|
||||
Function: Hook:
|
||||
* VSync CPU module, Interrupt 1
|
||||
* State change CPU module, Interrupt 3
|
||||
* WAIT lamp Keyboard, WAIT indicator
|
||||
* ON LINE lamp Keyboard, ON LINE indicator
|
||||
* CARRIER lamp Keyboard, CARRIER indicator
|
||||
* ERROR lamp Keyboard, ERROR indicator
|
||||
* ENQUIRE lamp Keyboard, ENQUIRE indicator
|
||||
* ACK lamp Keyboard, ACK indicator
|
||||
* NAK lamp Keyboard, NAK indicator
|
||||
Function: Hook:
|
||||
* VSync CPU module, Interrupt 1
|
||||
* State change CPU module, Interrupt 3
|
||||
* WAIT lamp Keyboard, WAIT indicator
|
||||
* ON LINE lamp Keyboard, ON LINE indicator
|
||||
* CARRIER lamp Keyboard, CARRIER indicator
|
||||
* ERROR lamp Keyboard, ERROR indicator
|
||||
* ENQUIRE lamp Keyboard, ENQUIRE indicator
|
||||
* ACK lamp Keyboard, ACK indicator
|
||||
* NAK lamp Keyboard, NAK indicator
|
||||
|
||||
|
||||
TODO:
|
||||
TODO:
|
||||
|
||||
* Add CPU interface and strobes
|
||||
* Add CPU interrupts
|
||||
* Add CPU interface and strobes
|
||||
* Add CPU interrupts
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
// copyright-holders:Frode van der Meeren
|
||||
/***************************************************************************
|
||||
|
||||
Tandberg TDV-2115 Terminal module, "Display Logic" version
|
||||
Tandberg TDV-2115 Terminal module, "Display Logic" version
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
|
@ -2,93 +2,93 @@
|
||||
// copyright-holders:Frode van der Meeren
|
||||
/***************************************************************************
|
||||
|
||||
Tandberg TDV-2100 Series Keyboard
|
||||
Tandberg TDV-2100 Series Keyboard
|
||||
|
||||
Two keyboards exist, one using switches and logic to derive keypresses,
|
||||
the other based on an OEM design from Key Tronic Corp, based on capacitive
|
||||
switches and the 20-04592-013 30293E-013 chip by GI (AY-3-4592 derivative).
|
||||
In both cases there is a translation ROM for deriving an ASCII character
|
||||
for each keypress, and the Keytronic version also has a ROM for sorting
|
||||
out key properties. For the logic-based keyboard all keys have the same
|
||||
properties.
|
||||
Two keyboards exist, one using switches and logic to derive keypresses,
|
||||
the other based on an OEM design from Key Tronic Corp, based on capacitive
|
||||
switches and the 20-04592-013 30293E-013 chip by GI (AY-3-4592 derivative).
|
||||
In both cases there is a translation ROM for deriving an ASCII character
|
||||
for each keypress, and the Keytronic version also has a ROM for sorting
|
||||
out key properties. For the logic-based keyboard all keys have the same
|
||||
properties.
|
||||
|
||||
The logic keyboard toggles a relay in order to make a typing-sound, while
|
||||
the Keytronic keyboard has a proper buzzer for this click.
|
||||
The logic keyboard toggles a relay in order to make a typing-sound, while
|
||||
the Keytronic keyboard has a proper buzzer for this click.
|
||||
|
||||
|
||||
Keytronic keyboard key numbers (as printed on PCB):
|
||||
Keytronic keyboard key numbers (as printed on PCB):
|
||||
|
||||
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
||||
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
||||
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
||||
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
||||
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
||||
95 96 97 98 99 100 101 102 103
|
||||
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
||||
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
||||
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
||||
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
||||
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
||||
95 96 97 98 99 100 101 102 103
|
||||
|
||||
|
||||
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
||||
---+------------------------------------------------------------------
|
||||
0 | 90/91* 90* 91 1 11 10 9 8 7 6 5 4 3 2
|
||||
1 | 79 79* 30 29 28 27 26 25 24 23 22 21 20 19
|
||||
2 | 59 18 50 49 48 47 46 45 44 43 42 41 40 39
|
||||
3 | 38/59* 38* 72 60 70 69 68 67 66 65 64 63 62 61
|
||||
4 | 12* 100 99 98 89 88 87 86 85 84 83 82 81 12
|
||||
5 | 13* 80 93 92 17 94 103 75 73 74 53 54 55 13
|
||||
6 | 14* 95 96 97 76 78 77 56 58 57 37 36 35 14
|
||||
7 | 71 51 31* 52 102 101 16 15 32 33 34 31/71*
|
||||
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
||||
---+------------------------------------------------------------------
|
||||
0 | 90/91* 90* 91 1 11 10 9 8 7 6 5 4 3 2
|
||||
1 | 79 79* 30 29 28 27 26 25 24 23 22 21 20 19
|
||||
2 | 59 18 50 49 48 47 46 45 44 43 42 41 40 39
|
||||
3 | 38/59* 38* 72 60 70 69 68 67 66 65 64 63 62 61
|
||||
4 | 12* 100 99 98 89 88 87 86 85 84 83 82 81 12
|
||||
5 | 13* 80 93 92 17 94 103 75 73 74 53 54 55 13
|
||||
6 | 14* 95 96 97 76 78 77 56 58 57 37 36 35 14
|
||||
7 | 71 51 31* 52 102 101 16 15 32 33 34 31/71*
|
||||
|
||||
* Alternate positions, selectable by jumpers
|
||||
* Alternate positions, selectable by jumpers
|
||||
|
||||
|
||||
Keytronic keyboard key-id (bit7 = Shift, bit8 = Ctrl):
|
||||
Keytronic keyboard key-id (bit7 = Shift, bit8 = Ctrl):
|
||||
|
||||
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
||||
---+---------------------------------------------------------------
|
||||
0 | Sh 7E* 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E
|
||||
1 | Sh 7D* 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D
|
||||
2 | Lk 7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C
|
||||
3 | Ct 7B* 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B
|
||||
4 | 7A* 72* 6A 62* 5A 52 4A 42 3A 32 2A 22 1A Di
|
||||
5 | 79* 71 69* 61 59 51 49 41 39 31 29 21 19 Di
|
||||
6 | 78* 70 68 60 58 50 48 40 38 30 28 20 18 Di
|
||||
7 | 77 6F 67* 5F 57* 4F* 47* 3F 37 2F 27 1F 17 Di
|
||||
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
||||
---+---------------------------------------------------------------
|
||||
0 | Sh 7E* 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E
|
||||
1 | Sh 7D* 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D
|
||||
2 | Lk 7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C
|
||||
3 | Ct 7B* 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B
|
||||
4 | 7A* 72* 6A 62* 5A 52 4A 42 3A 32 2A 22 1A Di
|
||||
5 | 79* 71 69* 61 59 51 49 41 39 31 29 21 19 Di
|
||||
6 | 78* 70 68 60 58 50 48 40 38 30 28 20 18 Di
|
||||
7 | 77 6F 67* 5F 57* 4F* 47* 3F 37 2F 27 1F 17 Di
|
||||
|
||||
|
||||
6E 1E 26 2E 36 3E 46 4E 56 5E 66 Di Di Di
|
||||
2F 37 59 7C 1D 25 2D 35 3D 45 4D 55 5D 65 6D 75 Di 27 1F 17
|
||||
18 20 28 Ct 1C 24 2C 34 3C 44 4C 54 5C 64 6C 74 6F 5F 29 21 19
|
||||
40 30 38 Lk 6B 1B 23 2B 33 3B 43 4B 53 5B 63 77 73 39 31 41
|
||||
58 48 50 Sh 71 1A 22 2A 32 3A 42 4A 52 5A Sh 76 61 69* 51
|
||||
70 68 60 62* 6A 72* 3F 47* 49
|
||||
6E 1E 26 2E 36 3E 46 4E 56 5E 66 Di Di Di
|
||||
2F 37 59 7C 1D 25 2D 35 3D 45 4D 55 5D 65 6D 75 Di 27 1F 17
|
||||
18 20 28 Ct 1C 24 2C 34 3C 44 4C 54 5C 64 6C 74 6F 5F 29 21 19
|
||||
40 30 38 Lk 6B 1B 23 2B 33 3B 43 4B 53 5B 63 77 73 39 31 41
|
||||
58 48 50 Sh 71 1A 22 2A 32 3A 42 4A 52 5A Sh 76 61 69* 51
|
||||
70 68 60 62* 6A 72* 3F 47* 49
|
||||
|
||||
* Not verified, assumed value
|
||||
* Not verified, assumed value
|
||||
|
||||
|
||||
Input strobes:
|
||||
Input strobes:
|
||||
|
||||
Function: Hook:
|
||||
* Set indicator WAIT Display Logic module, lamp WAIT signal
|
||||
* Set indicator ON LINE Display Logic module, lamp ON LINE signal
|
||||
* Set indicator CARRIER Display Logic module, lamp CARRIER signal
|
||||
* Set indicator ERROR Display Logic module, lamp ERROR signal
|
||||
* Set indicator ENQUIRE Display Logic module, lamp ENQUIRE signal
|
||||
* Set indicator ACK Display Logic module, lamp ACK signal
|
||||
* Set indicator NAK Display Logic module, lamp NAK signal
|
||||
Function: Hook:
|
||||
* Set indicator WAIT Display Logic module, lamp WAIT signal
|
||||
* Set indicator ON LINE Display Logic module, lamp ON LINE signal
|
||||
* Set indicator CARRIER Display Logic module, lamp CARRIER signal
|
||||
* Set indicator ERROR Display Logic module, lamp ERROR signal
|
||||
* Set indicator ENQUIRE Display Logic module, lamp ENQUIRE signal
|
||||
* Set indicator ACK Display Logic module, lamp ACK signal
|
||||
* Set indicator NAK Display Logic module, lamp NAK signal
|
||||
|
||||
Output strobes:
|
||||
Output strobes:
|
||||
|
||||
Function: Hook:
|
||||
* Pending character Display Logic module, process pending keyboard char
|
||||
* CLEAR keyswitch Display Logic module, clear screen
|
||||
* TRANS keyswitch Display Logic module, toggle TRANSMIT
|
||||
* LINE keyswitch Display Logic module, toggle ON-LINE
|
||||
* BREAK keyswitch Display Logic module, force UART out high
|
||||
Function: Hook:
|
||||
* Pending character Display Logic module, process pending keyboard char
|
||||
* CLEAR keyswitch Display Logic module, clear screen
|
||||
* TRANS keyswitch Display Logic module, toggle TRANSMIT
|
||||
* LINE keyswitch Display Logic module, toggle ON-LINE
|
||||
* BREAK keyswitch Display Logic module, force UART out high
|
||||
|
||||
|
||||
TODO:
|
||||
* Add click sound and volume potentiometer
|
||||
* Add CRT brightness-adjust potentiometer
|
||||
* Expose 8-bit output mode and add jumpers for layout options
|
||||
TODO:
|
||||
* Add click sound and volume potentiometer
|
||||
* Add CRT brightness-adjust potentiometer
|
||||
* Expose 8-bit output mode and add jumpers for layout options
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
@ -129,12 +129,12 @@ tandberg_tdv2100_keyboard_device::tandberg_tdv2100_keyboard_device(const machine
|
||||
m_char_buffer(0x00),
|
||||
m_key_nr_in_buffer(0xff),
|
||||
m_8_bit_output(false) // Hardwiered by PCB-trace jumpers 37-39 and 40-42, set at factory
|
||||
// true:
|
||||
// Use parameter PROM bit 2 to get which keys are inhibited
|
||||
// Replace TRANS key strobe with extra character data-bit
|
||||
// false:
|
||||
// Ignore parameter PROM bit 2
|
||||
// Use msb of char-map PROM to get which keys are inhibited
|
||||
// true:
|
||||
// Use parameter PROM bit 2 to get which keys are inhibited
|
||||
// Replace TRANS key strobe with extra character data-bit
|
||||
// false:
|
||||
// Ignore parameter PROM bit 2
|
||||
// Use msb of char-map PROM to get which keys are inhibited
|
||||
{
|
||||
std::fill(std::begin(m_keystate), std::end(m_keystate), 0);
|
||||
}
|
||||
@ -244,7 +244,7 @@ void tandberg_tdv2100_keyboard_device::scan_next_column(int state)
|
||||
case 0:
|
||||
case 1:
|
||||
m_keystate[m_column_counter] &= ~(1<<row_counter); // Turn off released shift key
|
||||
m_shift = m_keystate[m_column_counter]&0x03; // Keep shift state if the other shift key is still down
|
||||
m_shift = m_keystate[m_column_counter]&0x03; // Keep shift state if the other shift key is still down
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
@ -2,7 +2,7 @@
|
||||
// copyright-holders:Frode van der Meeren
|
||||
/***************************************************************************
|
||||
|
||||
Tandberg TDV-2100 Series Keyboard
|
||||
Tandberg TDV-2100 Series Keyboard
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
@ -48,9 +48,9 @@ private:
|
||||
required_region_ptr<uint8_t> m_keyparams;
|
||||
required_ioport_array<15> m_matrix;
|
||||
required_device<clock_device> m_scan_clock;
|
||||
required_ioport m_sw_all_cap;
|
||||
required_ioport m_key_repeat_delay;
|
||||
required_ioport m_key_repeat_rate;
|
||||
required_ioport m_sw_all_cap;
|
||||
required_ioport m_key_repeat_delay;
|
||||
required_ioport m_key_repeat_rate;
|
||||
|
||||
output_finder<> m_online_led;
|
||||
output_finder<> m_carrier_led;
|
||||
@ -74,7 +74,7 @@ private:
|
||||
bool m_shift_lock;
|
||||
bool m_control;
|
||||
uint8_t m_char_buffer;
|
||||
uint8_t m_key_nr_in_buffer;
|
||||
uint8_t m_key_nr_in_buffer;
|
||||
emu_timer *m_key_repeat_trigger;
|
||||
|
||||
bool m_8_bit_output;
|
||||
|
@ -2,10 +2,10 @@
|
||||
// copyright-holders:Frode van der Meeren
|
||||
/***************************************************************************
|
||||
|
||||
Tandberg TDV-2115L Terminal
|
||||
Tandberg TDV-2115L Terminal
|
||||
|
||||
This driver uses the TDV-2100 series Display Logic module as a regular
|
||||
dumb-terminal, being the simplest configuration in the TDV-2100 series.
|
||||
This driver uses the TDV-2100 series Display Logic module as a regular
|
||||
dumb-terminal, being the simplest configuration in the TDV-2100 series.
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user