srcclean and manual cleanup in preparation for release branch

This commit is contained in:
Vas Crabb 2024-01-28 03:06:23 +11:00
parent 5f1ce52025
commit e503b7f90e
48 changed files with 435 additions and 435 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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
---------------------------------------------------

View File

@ -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;

View File

@ -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);
}

View File

@ -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;

View File

@ -47,7 +47,7 @@ db50xg_device::db50xg_device(const machine_config &mconfig, const char *tag, dev
m_swp00(*this, "swp00")
{
}
db50xg_device::~db50xg_device()
{
}

View File

@ -45,7 +45,7 @@ db60xg_device::db60xg_device(const machine_config &mconfig, const char *tag, dev
m_swp00(*this, "swp00")
{
}
db60xg_device::~db60xg_device()
{
}

View File

@ -34,7 +34,7 @@ omniwave_device::omniwave_device(const machine_config &mconfig, const char *tag,
m_ks0164(*this, "ks0164")
{
}
omniwave_device::~omniwave_device()
{
}

View File

@ -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"

View File

@ -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); }

View File

@ -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()

View File

@ -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;

View File

@ -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
}

View File

@ -66,4 +66,4 @@ private:
DECLARE_DEVICE_TYPE(MEDIAGX_HOST, mediagx_host_device)
#endif
#endif

View File

@ -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();

View File

@ -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;
}),

View File

@ -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);

View File

@ -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

View File

@ -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;
}
}
}
}

View File

@ -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();
}

View File

@ -30,7 +30,7 @@ protected:
private:
TIMER_CALLBACK_MEMBER(frame_update_callback);
emu_timer *m_frame_timer;
output_finder<1> m_vfd_background;

View File

@ -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()

View File

@ -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;

View File

@ -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);

View File

@ -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>

View File

@ -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"/>

View File

@ -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);

View File

@ -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);

View File

@ -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));
}

View File

@ -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)

View File

@ -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:

View File

@ -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

View File

@ -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.

View File

@ -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"

View File

@ -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);
}

View File

@ -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)

View File

@ -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

View File

@ -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 )

View File

@ -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
}
}

View File

@ -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

View File

@ -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)
{

View File

@ -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 )

View File

@ -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
****************************************************************************/

View File

@ -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
****************************************************************************/

View File

@ -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:

View File

@ -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;

View File

@ -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.
****************************************************************************/