srcclean and cleanup (nw)

This commit is contained in:
Vas Crabb 2020-06-21 14:59:50 +10:00
parent 8ef400ec67
commit 01661be41c
146 changed files with 1092 additions and 1092 deletions

View File

@ -853,8 +853,8 @@ Info for original games comes from https://web.archive.org/web/20141023024713/mc
<part name="cass1" interface="mc1000_cass">
<!--
<dataarea name="cass" size="702764">
<rom name="aventura.wav" size="702764" crc="82a6263b" sha1="834d9511e22f5c34244923108366201e82b89179"/>
<dataarea name="cass" size="702764">
<rom name="aventura.wav" size="702764" crc="82a6263b" sha1="834d9511e22f5c34244923108366201e82b89179"/>
-->
<dataarea name="cass" size="168558">
<rom name="aventura.wav" size="168558" crc="208c0c8b" sha1="169010d35d4fa3a63cf00f5758717e57fd4754e2"/>
@ -910,8 +910,8 @@ Info for original games comes from https://web.archive.org/web/20141023024713/mc
<part name="cass1" interface="mc1000_cass">
<!--
<dataarea name="cass" size="176812">
<rom name="circulos.wav" size="176812" crc="402caaea" sha1="614201ff32f80c91bf433243bc046eee78e190bf"/>
<dataarea name="cass" size="176812">
<rom name="circulos.wav" size="176812" crc="402caaea" sha1="614201ff32f80c91bf433243bc046eee78e190bf"/>
-->
<dataarea name="cass" size="40350">
<rom name="circulos.wav" size="40350" crc="007a7c30" sha1="0002df62b1b37cd1c3d5b0db3a7a86f733604106"/>
@ -979,8 +979,8 @@ Info for original games comes from https://web.archive.org/web/20141023024713/mc
<part name="cass1" interface="mc1000_cass">
<!--
<dataarea name="cass" size="549964">
<rom name="explosao.wav" size="549964" crc="d231d3af" sha1="a3cce871efa9f8762257ac7ea47c71311f25920f"/>
<dataarea name="cass" size="549964">
<rom name="explosao.wav" size="549964" crc="d231d3af" sha1="a3cce871efa9f8762257ac7ea47c71311f25920f"/>
-->
<dataarea name="cass" size="130822">
<rom name="explosao.wav" size="130822" crc="0b46f290" sha1="821b95bd675097d5ffba1c4c97898d20c9d10bb3"/>

View File

@ -374,7 +374,7 @@ Info on N64 chip labels (from The Cart Scan Repository)
<description>AeroGauge (Europe)</description>
<year>1998</year>
<publisher>ASCII Entertainment</publisher>
<info name="serial" value=" NUS-NAGP-NOE, NUS-NAGP-UKV"/>
<info name="serial" value="NUS-NAGP-NOE, NUS-NAGP-UKV"/>
<part name="cart" interface="n64_cart">
<feature name="pcb" value="NUS-01A-02" />
<feature name="u1" value="U1 [NUS-NAGP-0]" />

View File

@ -47339,14 +47339,14 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<feature name="pcb" value="KONAMI-VRC-2" />
<feature name="vrc2-pin3" value="PRG A1" />
<feature name="vrc2-pin4" value="PRG A0" />
<feature name="vrc2-pin21" value ="CHR A10" />
<feature name="vrc2-pin22" value ="CHR A16" />
<feature name="vrc2-pin23" value ="CHR A11" />
<feature name="vrc2-pin24" value ="CHR A13" />
<feature name="vrc2-pin25" value ="CHR A14" />
<feature name="vrc2-pin26" value ="CHR A12" />
<feature name="vrc2-pin27" value ="CHR A15" />
<feature name="vrc2-pin28" value ="NC" />
<feature name="vrc2-pin21" value="CHR A10" />
<feature name="vrc2-pin22" value="CHR A16" />
<feature name="vrc2-pin23" value="CHR A11" />
<feature name="vrc2-pin24" value="CHR A13" />
<feature name="vrc2-pin25" value="CHR A14" />
<feature name="vrc2-pin26" value="CHR A12" />
<feature name="vrc2-pin27" value="CHR A15" />
<feature name="vrc2-pin28" value="NC" />
<dataarea name="chr" size="131072">
<rom name="mad city (japan) (beta).chr" size="131072" crc="028dc0ef" sha1="1212b249bfc2c13e76a337d4ceedc5f78d1d5be6" offset="00000" status="baddump" />
</dataarea>
@ -50292,14 +50292,14 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<feature name="pcb" value="KONAMI-VRC-2" />
<feature name="vrc2-pin3" value="PRG A1" />
<feature name="vrc2-pin4" value="PRG A0" />
<feature name="vrc2-pin21" value ="CHR A10" />
<feature name="vrc2-pin22" value ="CHR A16" />
<feature name="vrc2-pin23" value ="CHR A11" />
<feature name="vrc2-pin24" value ="CHR A13" />
<feature name="vrc2-pin25" value ="CHR A14" />
<feature name="vrc2-pin26" value ="CHR A12" />
<feature name="vrc2-pin27" value ="CHR A15" />
<feature name="vrc2-pin28" value ="NC" />
<feature name="vrc2-pin21" value="CHR A10" />
<feature name="vrc2-pin22" value="CHR A16" />
<feature name="vrc2-pin23" value="CHR A11" />
<feature name="vrc2-pin24" value="CHR A13" />
<feature name="vrc2-pin25" value="CHR A14" />
<feature name="vrc2-pin26" value="CHR A12" />
<feature name="vrc2-pin27" value="CHR A15" />
<feature name="vrc2-pin28" value="NC" />
<dataarea name="chr" size="131072">
<rom name="twinbee 3 - poko poko dai maou (japan) (beta).chr" size="131072" crc="22a2268f" sha1="a930b56984f1bf8cc08050a52a8e2ed2484619cf" offset="00000" status="baddump" />
</dataarea>

View File

@ -11,7 +11,7 @@ NOTE: This list is here only to document available dumps and it's not hooked up
<description>Ballistic</description>
<year>2000</year>
<publisher>VM Labs, Inc.</publisher>
<part interface="dvdrom" name="dvdrom">
<part interface="dvdrom" name="dvdrom">
<diskarea name="dvdrom">
<disk name="ballstic" sha1="92b386f176eecc7d3b1e13675ccaf0b60a543175" />
</diskarea>
@ -22,7 +22,7 @@ NOTE: This list is here only to document available dumps and it's not hooked up
<description>FreeFall 3050 A.D.</description>
<year>200?</year>
<publisher>VM Labs, Inc.</publisher>
<part interface="dvdrom" name="dvdrom">
<part interface="dvdrom" name="dvdrom">
<diskarea name="dvdrom">
<disk name="freefall" sha1="56540609dcdf3d5234a1d045b28cba58ba6adae8" />
</diskarea>
@ -33,7 +33,7 @@ NOTE: This list is here only to document available dumps and it's not hooked up
<description>Iron Soldier 3</description>
<year>2001</year>
<publisher>VM Labs, Inc.</publisher>
<part interface="dvdrom" name="dvdrom">
<part interface="dvdrom" name="dvdrom">
<diskarea name="dvdrom">
<disk name="is3" sha1="47dec1bbb819342cf8bc2fee98fc7b18d1302503" />
</diskarea>
@ -44,7 +44,7 @@ NOTE: This list is here only to document available dumps and it's not hooked up
<description>Merlin Racing</description>
<year>200?</year>
<publisher>VM Labs, Inc.</publisher>
<part interface="dvdrom" name="dvdrom">
<part interface="dvdrom" name="dvdrom">
<diskarea name="dvdrom">
<disk name="merlinr" sha1="80116c3c9440492678f8f072c5fabd2cedb3034e" />
</diskarea>
@ -55,7 +55,7 @@ NOTE: This list is here only to document available dumps and it's not hooked up
<description>Space Invaders XL</description>
<year>200?</year>
<publisher>VM Labs, Inc.</publisher>
<part interface="dvdrom" name="dvdrom">
<part interface="dvdrom" name="dvdrom">
<diskarea name="dvdrom">
<disk name="spacinvx" sha1="76518e106ab04819f6b85cc3e1eea08968b7b249" />
</diskarea>
@ -66,7 +66,7 @@ NOTE: This list is here only to document available dumps and it's not hooked up
<description>Tempest 3000</description>
<year>200?</year>
<publisher>VM Labs, Inc.</publisher>
<part interface="dvdrom" name="dvdrom">
<part interface="dvdrom" name="dvdrom">
<diskarea name="dvdrom">
<disk name="tempest3" sha1="48e44d3de2642bb7b4fc5a044caf4cb2e8ad5c25" />
</diskarea>
@ -77,7 +77,7 @@ NOTE: This list is here only to document available dumps and it's not hooked up
<description>Toshiba Sampler (11-1-2000)</description>
<year>200?</year>
<publisher>VM Labs, Inc.</publisher>
<part interface="dvdrom" name="dvdrom">
<part interface="dvdrom" name="dvdrom">
<diskarea name="dvdrom">
<disk name="toshsamp" sha1="e312c9cec7f11a4594c1a3340fbcc9f66a65e9b1" />
</diskarea>

View File

@ -1337,7 +1337,7 @@ license:CC0
<year>1996</year> <!-- 03/96 -->
<publisher>Silicon Graphics</publisher>
<part name="cdrom" interface="cdrom">
<feature name="part_number" value=" 812-0478-001"/>
<feature name="part_number" value="812-0478-001"/>
<!-- Origin: jrra.zone -->
<diskarea name="cdrom">
<disk name="iris_development_option_6_2" sha1="eabaa5238a3515f1c71d693efc2781b4d1675cf9" />
@ -2099,7 +2099,7 @@ license:CC0
<year>1993</year> <!-- 09/93 -->
<publisher>Silicon Graphics</publisher>
<part name="cdrom" interface="cdrom">
<feature name="part_number" value=" 812-0232-002"/>
<feature name="part_number" value="812-0232-002"/>
<!-- Origin: jrra.zone -->
<diskarea name="cdrom">
<disk name="indy_irix_5_1_1" sha1="e041bee239367f926ce0cef0d16830bdbe49ea01" />
@ -2231,7 +2231,7 @@ license:CC0
<publisher>Silicon Graphics</publisher>
<part name="cdrom1" interface="cdrom">
<feature name="part_number" value="812-0469-001"/>
<feature name="part_id" value="IRIX 6.2 part 1 of 2"/>
<feature name="part_id" value="IRIX 6.2 part 1 of 2"/>
<!-- Origin: private dump. Verified SHA1 against a Plextor dump without C2 errors -->
<diskarea name="cdrom">
<disk name="irix_6_2_part_1_of_2" sha1="714ad598cde6a48132005e4728e7e7d18fdbbb1b" />
@ -2325,7 +2325,7 @@ license:CC0
</part>
<part name="cdrom4" interface="cdrom">
<feature name="part_number" value="812-0747-001"/>
<feature name="part_id" value=" IRIX 6.5 Beta Applications"/>
<feature name="part_id" value="IRIX 6.5 Beta Applications"/>
<!-- Origin: jrra.zone -->
<diskarea name="cdrom">
<disk name="irix_6_5_beta_applications" sha1="6640a6b668de811d681bb8b17c16a44d67529c33" />
@ -2357,7 +2357,7 @@ license:CC0
</part>
<part name="cdrom8" interface="cdrom">
<feature name="part_number" value="812-0753-001"/>
<feature name="part_id" value=" IRIX 6.5 Beta O2 Demos"/>
<feature name="part_id" value="IRIX 6.5 Beta O2 Demos"/>
<!-- Origin: jrra.zone -->
<diskarea name="cdrom">
<disk name="irix_6_5_beta_o2_demos" sha1="c954caa735d92dcf4a6aba620c8d7ad44cf3b0bb" />
@ -3337,7 +3337,7 @@ license:CC0
</diskarea>
</part>
<part name="cdrom4" interface="cdrom">
<feature name="part_number" value="812-0877-022 "/>
<feature name="part_number" value="812-0877-022 "/>
<feature name="part_id" value="IRIX 6.5 Applications November 2003"/>
<!-- Origin: archive.org -->
<diskarea name="cdrom">

View File

@ -645,7 +645,7 @@ license:CC0
</software>
<!--
<software name="ledstorm">
<software name="ledstorm">
-->
<!-- SPS (CAPS) release 3585 -->
<!--
@ -1012,7 +1012,7 @@ license:CC0
</software>
<!--
<software name="rockhams">
<software name="rockhams">
-->
<!-- SPS (CAPS) release 3607 -->
<!--
@ -1451,7 +1451,7 @@ license:CC0
</software>
<!--
<software name="tigeroad">
<software name="tigeroad">
-->
<!-- SPS (CAPS) release 3625 -->
<!--

View File

@ -315154,7 +315154,7 @@ license:CC0
</software>
<!-- Project 2612 VGM Archives located at http://project2612.org/list.php
Update May 2, 2020 - 5 new entries -->
Update May 2, 2020 - 5 new entries -->
<software name="joemont2_md">
<description>Joe Montana II - Sports Talk Football (GEN/MD)</description>

View File

@ -6,8 +6,8 @@
Implementation of the Apple II IWM controller card
WANTED: there are no ROM dumps from this card in any form
(the IWM card, the UniDisk )
WANTED: there are no ROM dumps from this card in any form
(the IWM card, the UniDisk )
*********************************************************************/

View File

@ -149,7 +149,7 @@ private:
// registers
u8 m_cache_controler;
u8 m_cache_pointer;
required_device<ram_device> m_cache_buffer;
required_device<ram_device> m_cache_buffer;
};

View File

@ -6,7 +6,7 @@
Code for emulating the Disto RAM cartridge
This cartridge came in several forms: 256K, 512K, 768K, and 1024K.
This cartridge came in several forms: 256K, 512K, 768K, and 1024K.
***************************************************************************/
@ -53,7 +53,7 @@ namespace
private:
required_device<ram_device> m_staticram;
int m_offset;
int m_offset;
};
};
@ -124,7 +124,7 @@ void coco_pak_ram_device::device_reset()
void coco_pak_ram_device::scs_write(offs_t offset, u8 data)
{
// int idata = data;
// int idata = data;
switch(offset)
{

View File

@ -791,7 +791,7 @@ void ecb_grip21_device::cxstb_w(uint8_t data)
void grip5_state::eprom_w(uint8_t data)
{
membank("eprom")->set_entry(BIT(data, 0));
membank("eprom")->set_entry(BIT(data, 0));
}
@ -801,7 +801,7 @@ void grip5_state::eprom_w(uint8_t data)
void grip5_state::dpage_w(uint8_t data)
{
m_dpage = BIT(data, 7);
m_dpage = BIT(data, 7);
}
*/

View File

@ -23,15 +23,15 @@ DEFINE_DEVICE_TYPE(GRID2101_HDD, grid2101_hdd_device, "grid2101_hdd", "GRID2101_
#include "logmacro.h"
#define GRID2102_FETCH32(Array, Offset) ((uint32_t)(\
(Array[Offset] << 0) |\
(Array[Offset + 1] << 8) |\
(Array[Offset + 2] << 16) |\
(Array[Offset + 3] << 24)\
(Array[Offset] << 0) |\
(Array[Offset + 1] << 8) |\
(Array[Offset + 2] << 16) |\
(Array[Offset + 3] << 24)\
))
#define GRID2102_FETCH16(Array, Offset) ((uint16_t)(\
(Array[Offset] << 0) |\
(Array[Offset + 1] << 8)\
(Array[Offset] << 0) |\
(Array[Offset + 1] << 8)\
))
#define GRID2101_HARDDISK_DEV_ADDR 4
@ -48,258 +48,258 @@ DEFINE_DEVICE_TYPE(GRID2101_HDD, grid2101_hdd_device, "grid2101_hdd", "GRID2101_
#define GRID210X_STATE_WRITING_DATA_WAIT 3
uint8_t grid2102_device::identify_response[56] = {0x00, 0x02, 0xf8, 0x01, 0xD0, 0x02, 0x01, 0x20, 0x01, 0x21, 0x01, 0x01, 0x00, 0x00,
0x34, 0x38, 0x20, 0x54, 0x50, 0x49, 0x20, 0x44, 0x53, 0x20, 0x44, 0x44, 0x20, 0x46,
0x4c, 0x4f, 0x50, 0x50, 0x59, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x32, 0x33, 0x37,
0x2d, 0x30, 0x30, 0x00, 0x02, 0x09, 0x00};
0x34, 0x38, 0x20, 0x54, 0x50, 0x49, 0x20, 0x44, 0x53, 0x20, 0x44, 0x44, 0x20, 0x46,
0x4c, 0x4f, 0x50, 0x50, 0x59, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x32, 0x33, 0x37,
0x2d, 0x30, 0x30, 0x00, 0x02, 0x09, 0x00};
uint8_t grid2101_floppy_device::identify_response[56] = {0x00, 0x02, 0xf8, 0x01, 0xD0, 0x02, 0x01, 0x20, 0x01, 0x21, 0x01, 0x01, 0x00, 0x00,
0x34, 0x38, 0x20, 0x54, 0x50, 0x49, 0x20, 0x44, 0x53, 0x20, 0x44, 0x44, 0x20, 0x46,
0x4c, 0x4f, 0x50, 0x50, 0x59, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x32, 0x33, 0x37,
0x2d, 0x30, 0x30, 0x00, 0x02, 0x09, 0x00};
0x34, 0x38, 0x20, 0x54, 0x50, 0x49, 0x20, 0x44, 0x53, 0x20, 0x44, 0x44, 0x20, 0x46,
0x4c, 0x4f, 0x50, 0x50, 0x59, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x32, 0x33, 0x37,
0x2d, 0x30, 0x30, 0x00, 0x02, 0x09, 0x00};
uint8_t grid2101_hdd_device::identify_response[56] = {
0x00, 0x02, 0xF8, 0x01, 0x8C, 0x51, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x4D, 0x41,
0x4D, 0x45, 0x20, 0x48, 0x41, 0x52, 0x44, 0x44, 0x49, 0x53, 0x4B, 0x20, 0x44, 0x52, 0x49, 0x56,
0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x52, 0x49, 0x44, 0x32, 0x31, 0x30, 0x31, 0x00, 0x02,
0x11, 0x00, 0x33, 0x01, 0x00, 0x00, 0x04, 0x00
0x00, 0x02, 0xF8, 0x01, 0x8C, 0x51, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x4D, 0x41,
0x4D, 0x45, 0x20, 0x48, 0x41, 0x52, 0x44, 0x44, 0x49, 0x53, 0x4B, 0x20, 0x44, 0x52, 0x49, 0x56,
0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x52, 0x49, 0x44, 0x32, 0x31, 0x30, 0x31, 0x00, 0x02,
0x11, 0x00, 0x33, 0x01, 0x00, 0x00, 0x04, 0x00
};
grid210x_device::grid210x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int bus_addr, uint8_t *identify_response, attotime read_delay)
: device_t(mconfig, type, tag, owner, clock),
device_ieee488_interface(mconfig, *this),
device_image_interface(mconfig, *this),
m_gpib_loop_state(GRID210X_GPIB_STATE_IDLE),
m_floppy_loop_state(GRID210X_STATE_IDLE),
listening(false),
talking(false),
serial_polling(false),
has_srq(false),
serial_poll_byte(0),
bus_addr(bus_addr),
identify_response_ptr(identify_response),
read_delay(read_delay)
device_image_interface(mconfig, *this),
m_gpib_loop_state(GRID210X_GPIB_STATE_IDLE),
m_floppy_loop_state(GRID210X_STATE_IDLE),
listening(false),
talking(false),
serial_polling(false),
has_srq(false),
serial_poll_byte(0),
bus_addr(bus_addr),
identify_response_ptr(identify_response),
read_delay(read_delay)
{
}
void grid210x_device::device_start() {
m_bus->ndac_w(this, 1);
m_bus->nrfd_w(this, 1);
m_delay_timer = timer_alloc(0);
m_bus->ndac_w(this, 1);
m_bus->nrfd_w(this, 1);
m_delay_timer = timer_alloc(0);
}
void grid210x_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) {
if (m_floppy_loop_state == GRID210X_STATE_READING_DATA) {
std::unique_ptr<uint8_t[]> data(new uint8_t[io_size]);
fseek(floppy_sector_number * 512, SEEK_SET);
fread(data.get(), io_size);
for (int i = 0; i < io_size; i++) {
m_output_data_buffer.push(data[i]);
}
serial_poll_byte = 0x0F;
has_srq = true;
m_bus->srq_w(this, 0);
m_floppy_loop_state = GRID210X_STATE_IDLE;
} else if (m_floppy_loop_state == GRID210X_STATE_WRITING_DATA_WAIT) {
// send an srq as success flag
for (int i = 0; i < 7; i++) { // FIXME:
m_output_data_buffer.push(0);
}
serial_poll_byte = 0x0F;
has_srq = true;
m_bus->srq_w(this, 0);
m_floppy_loop_state = GRID210X_STATE_IDLE;
}
if (m_floppy_loop_state == GRID210X_STATE_READING_DATA) {
std::unique_ptr<uint8_t[]> data(new uint8_t[io_size]);
fseek(floppy_sector_number * 512, SEEK_SET);
fread(data.get(), io_size);
for (int i = 0; i < io_size; i++) {
m_output_data_buffer.push(data[i]);
}
serial_poll_byte = 0x0F;
has_srq = true;
m_bus->srq_w(this, 0);
m_floppy_loop_state = GRID210X_STATE_IDLE;
} else if (m_floppy_loop_state == GRID210X_STATE_WRITING_DATA_WAIT) {
// send an srq as success flag
for (int i = 0; i < 7; i++) { // FIXME:
m_output_data_buffer.push(0);
}
serial_poll_byte = 0x0F;
has_srq = true;
m_bus->srq_w(this, 0);
m_floppy_loop_state = GRID210X_STATE_IDLE;
}
}
void grid210x_device::ieee488_eoi(int state) {
// logerror("grid210x_device eoi state set to %d\n", state);
// logerror("grid210x_device eoi state set to %d\n", state);
}
void grid210x_device::accept_transfer() {
if (m_floppy_loop_state == GRID210X_STATE_IDLE) {
if (m_data_buffer.size() >= 0xA) {
uint8_t command = m_data_buffer[0];
uint32_t sector_number = GRID2102_FETCH32(m_data_buffer, 3);
uint16_t data_size = GRID2102_FETCH16(m_data_buffer, 7);
LOG("grid210x_device command %u, data size %u, sector no %u\n", (unsigned)command, (unsigned)data_size, (unsigned)sector_number);
(void)(sector_number);
if (command == 0x1) { // ddGetStatus
for (int i = 0; i < 56 && i < data_size; i++) {
m_output_data_buffer.push(identify_response_ptr[i]);
}
} else if (command == 0x4) { // ddRead
floppy_sector_number = sector_number;
io_size = data_size;
m_floppy_loop_state = GRID210X_STATE_READING_DATA;
m_delay_timer->adjust(read_delay);
} else if (command == 0x5) {
floppy_sector_number = sector_number;
io_size = data_size;
m_floppy_loop_state = GRID210X_STATE_WRITING_DATA;
}
} // else something is wrong, ignore
} else if (m_floppy_loop_state == GRID210X_STATE_WRITING_DATA) {
// write
if (floppy_sector_number != 0xFFFFFFFF) {
fseek(floppy_sector_number * 512, SEEK_SET);
fwrite(m_data_buffer.data(), m_data_buffer.size());
} else {
// TODO: set status
}
// logerror("grid210x_device write sector %d\n", floppy_sector_number);
// wait
m_floppy_loop_state = GRID210X_STATE_WRITING_DATA_WAIT;
m_delay_timer->adjust(read_delay);
}
if (m_floppy_loop_state == GRID210X_STATE_IDLE) {
if (m_data_buffer.size() >= 0xA) {
uint8_t command = m_data_buffer[0];
uint32_t sector_number = GRID2102_FETCH32(m_data_buffer, 3);
uint16_t data_size = GRID2102_FETCH16(m_data_buffer, 7);
LOG("grid210x_device command %u, data size %u, sector no %u\n", (unsigned)command, (unsigned)data_size, (unsigned)sector_number);
(void)(sector_number);
if (command == 0x1) { // ddGetStatus
for (int i = 0; i < 56 && i < data_size; i++) {
m_output_data_buffer.push(identify_response_ptr[i]);
}
} else if (command == 0x4) { // ddRead
floppy_sector_number = sector_number;
io_size = data_size;
m_floppy_loop_state = GRID210X_STATE_READING_DATA;
m_delay_timer->adjust(read_delay);
} else if (command == 0x5) {
floppy_sector_number = sector_number;
io_size = data_size;
m_floppy_loop_state = GRID210X_STATE_WRITING_DATA;
}
} // else something is wrong, ignore
} else if (m_floppy_loop_state == GRID210X_STATE_WRITING_DATA) {
// write
if (floppy_sector_number != 0xFFFFFFFF) {
fseek(floppy_sector_number * 512, SEEK_SET);
fwrite(m_data_buffer.data(), m_data_buffer.size());
} else {
// TODO: set status
}
// logerror("grid210x_device write sector %d\n", floppy_sector_number);
// wait
m_floppy_loop_state = GRID210X_STATE_WRITING_DATA_WAIT;
m_delay_timer->adjust(read_delay);
}
}
void grid210x_device::ieee488_dav(int state) {
if(state == 0 && m_gpib_loop_state == GRID210X_GPIB_STATE_IDLE) {
// read data and wait for transfer end
int atn = m_bus->atn_r() ^ 1;
m_bus->nrfd_w(this, 0);
uint8_t data = m_bus->dio_r() ^ 0xFF;
int eoi = m_bus->eoi_r() ^ 1;
LOG_BYTES("grid210x_device byte recv %02x atn %d eoi %d\n", data, atn, eoi);
m_last_recv_byte = data;
m_last_recv_atn = atn;
m_last_recv_eoi = eoi;
m_bus->ndac_w(this, 1);
m_gpib_loop_state = GRID210X_GPIB_STATE_WAIT_DAV_FALSE;
} else if (state == 1 && m_gpib_loop_state == GRID210X_GPIB_STATE_WAIT_DAV_FALSE) {
// restore initial state
// m_bus->ndac_w(this, 0);
m_bus->nrfd_w(this, 1);
m_gpib_loop_state = GRID210X_GPIB_STATE_IDLE;
update_ndac(m_bus->atn_r() ^ 1);
if(state == 0 && m_gpib_loop_state == GRID210X_GPIB_STATE_IDLE) {
// read data and wait for transfer end
int atn = m_bus->atn_r() ^ 1;
m_bus->nrfd_w(this, 0);
uint8_t data = m_bus->dio_r() ^ 0xFF;
int eoi = m_bus->eoi_r() ^ 1;
LOG_BYTES("grid210x_device byte recv %02x atn %d eoi %d\n", data, atn, eoi);
m_last_recv_byte = data;
m_last_recv_atn = atn;
m_last_recv_eoi = eoi;
m_bus->ndac_w(this, 1);
m_gpib_loop_state = GRID210X_GPIB_STATE_WAIT_DAV_FALSE;
} else if (state == 1 && m_gpib_loop_state == GRID210X_GPIB_STATE_WAIT_DAV_FALSE) {
// restore initial state
// m_bus->ndac_w(this, 0);
m_bus->nrfd_w(this, 1);
m_gpib_loop_state = GRID210X_GPIB_STATE_IDLE;
update_ndac(m_bus->atn_r() ^ 1);
if (m_last_recv_atn) {
if ((m_last_recv_byte & 0xE0) == 0x20) {
if ((m_last_recv_byte & 0x1F) == bus_addr) {
// dev-id = 5
listening = true;
LOG("grid210x_device now listening\n");
} else if((m_last_recv_byte & 0x1F) == 0x1F) {
// reset listen
listening = false;
LOG("grid210x_device now not listening\n");
}
} else if ((m_last_recv_byte & 0xE0) == 0x40) {
if ((m_last_recv_byte & 0x1F) == bus_addr) {
// dev-id = 5
talking = true;
LOG("grid210x_device now talking\n");
} else {
// reset talk
talking = false;
LOG("grid210x_device now not talking\n");
}
} else if (m_last_recv_byte == 0x18) {
// serial poll enable
serial_polling = true;
} else if (m_last_recv_byte == 0x19) {
// serial poll disable
serial_polling = false;
}
} else if (listening) {
m_data_buffer.push_back(m_last_recv_byte);
if (m_last_recv_eoi) {
accept_transfer();
m_data_buffer.clear();
}
}
if (m_last_recv_atn) {
if ((m_last_recv_byte & 0xE0) == 0x20) {
if ((m_last_recv_byte & 0x1F) == bus_addr) {
// dev-id = 5
listening = true;
LOG("grid210x_device now listening\n");
} else if((m_last_recv_byte & 0x1F) == 0x1F) {
// reset listen
listening = false;
LOG("grid210x_device now not listening\n");
}
} else if ((m_last_recv_byte & 0xE0) == 0x40) {
if ((m_last_recv_byte & 0x1F) == bus_addr) {
// dev-id = 5
talking = true;
LOG("grid210x_device now talking\n");
} else {
// reset talk
talking = false;
LOG("grid210x_device now not talking\n");
}
} else if (m_last_recv_byte == 0x18) {
// serial poll enable
serial_polling = true;
} else if (m_last_recv_byte == 0x19) {
// serial poll disable
serial_polling = false;
}
} else if (listening) {
m_data_buffer.push_back(m_last_recv_byte);
if (m_last_recv_eoi) {
accept_transfer();
m_data_buffer.clear();
}
}
if (talking) {
if (serial_polling) {
bool had_srq = has_srq;
if (has_srq) {
has_srq = false;
m_bus->srq_w(this, 1);
}
m_byte_to_send = serial_poll_byte | (had_srq ? 0x40 : 0);
serial_poll_byte = 0;
m_send_eoi = 1;
m_gpib_loop_state = GRID210X_GPIB_STATE_SEND_DATA_START;
} else if (!m_output_data_buffer.empty()) {
m_byte_to_send = m_output_data_buffer.front();
m_output_data_buffer.pop();
m_send_eoi = m_output_data_buffer.empty() ? 1 : 0;
m_gpib_loop_state = GRID210X_GPIB_STATE_SEND_DATA_START;
}
}
}
if (talking) {
if (serial_polling) {
bool had_srq = has_srq;
if (has_srq) {
has_srq = false;
m_bus->srq_w(this, 1);
}
m_byte_to_send = serial_poll_byte | (had_srq ? 0x40 : 0);
serial_poll_byte = 0;
m_send_eoi = 1;
m_gpib_loop_state = GRID210X_GPIB_STATE_SEND_DATA_START;
} else if (!m_output_data_buffer.empty()) {
m_byte_to_send = m_output_data_buffer.front();
m_output_data_buffer.pop();
m_send_eoi = m_output_data_buffer.empty() ? 1 : 0;
m_gpib_loop_state = GRID210X_GPIB_STATE_SEND_DATA_START;
}
}
}
}
void grid210x_device::ieee488_nrfd(int state) {
if (state == 1 && m_gpib_loop_state == GRID210X_GPIB_STATE_SEND_DATA_START) {
// set dio and assert dav
m_bus->host_dio_w(m_byte_to_send ^ 0xFF);
m_bus->eoi_w(this, m_send_eoi ^ 1);
m_bus->dav_w(this, 0);
m_bus->ndac_w(this, 1);
m_gpib_loop_state = GRID210X_GPIB_STATE_WAIT_NDAC_FALSE;
LOG_BYTES("grid210x_device byte send %02x eoi %d\n", m_byte_to_send, m_send_eoi);
ieee488_ndac(m_bus->ndac_r());
}
// logerror("grid210x_device nrfd state set to %d\n", state);
if (state == 1 && m_gpib_loop_state == GRID210X_GPIB_STATE_SEND_DATA_START) {
// set dio and assert dav
m_bus->host_dio_w(m_byte_to_send ^ 0xFF);
m_bus->eoi_w(this, m_send_eoi ^ 1);
m_bus->dav_w(this, 0);
m_bus->ndac_w(this, 1);
m_gpib_loop_state = GRID210X_GPIB_STATE_WAIT_NDAC_FALSE;
LOG_BYTES("grid210x_device byte send %02x eoi %d\n", m_byte_to_send, m_send_eoi);
ieee488_ndac(m_bus->ndac_r());
}
// logerror("grid210x_device nrfd state set to %d\n", state);
}
void grid210x_device::ieee488_ndac(int state) {
if (state == 1 && m_gpib_loop_state == GRID210X_GPIB_STATE_WAIT_NDAC_FALSE) {
// restore initial state
// logerror("grid210x_device restore ndac nrfd dav eoi\n");
m_bus->nrfd_w(this, 1);
m_bus->dav_w(this, 1);
m_bus->eoi_w(this, 1);
m_gpib_loop_state = GRID210X_GPIB_STATE_IDLE;
if (serial_polling) {
talking = false;
}
update_ndac(m_bus->atn_r() ^ 1);
if (state == 1 && m_gpib_loop_state == GRID210X_GPIB_STATE_WAIT_NDAC_FALSE) {
// restore initial state
// logerror("grid210x_device restore ndac nrfd dav eoi\n");
m_bus->nrfd_w(this, 1);
m_bus->dav_w(this, 1);
m_bus->eoi_w(this, 1);
m_gpib_loop_state = GRID210X_GPIB_STATE_IDLE;
if (serial_polling) {
talking = false;
}
update_ndac(m_bus->atn_r() ^ 1);
if (!serial_polling && talking && !m_output_data_buffer.empty()) {
m_byte_to_send = m_output_data_buffer.front();
m_output_data_buffer.pop();
m_send_eoi = m_output_data_buffer.empty() ? 1 : 0;
m_gpib_loop_state = GRID210X_GPIB_STATE_SEND_DATA_START;
}
}
// logerror("grid210x_device ndac state set to %d\n", state);
if (!serial_polling && talking && !m_output_data_buffer.empty()) {
m_byte_to_send = m_output_data_buffer.front();
m_output_data_buffer.pop();
m_send_eoi = m_output_data_buffer.empty() ? 1 : 0;
m_gpib_loop_state = GRID210X_GPIB_STATE_SEND_DATA_START;
}
}
// logerror("grid210x_device ndac state set to %d\n", state);
}
void grid210x_device::ieee488_ifc(int state) {
// logerror("grid210x_device ifc state set to %d\n", state);
// logerror("grid210x_device ifc state set to %d\n", state);
}
void grid210x_device::ieee488_srq(int state) {
// logerror("grid210x_device srq state set to %d\n", state);
// logerror("grid210x_device srq state set to %d\n", state);
}
void grid210x_device::ieee488_atn(int state) {
// logerror("grid210x_device atn state set to %d\n", state);
update_ndac(state ^ 1);
// logerror("grid210x_device atn state set to %d\n", state);
update_ndac(state ^ 1);
}
void grid210x_device::update_ndac(int atn) {
if (m_gpib_loop_state == GRID210X_GPIB_STATE_IDLE) {
if (atn) {
// pull NDAC low
m_bus->ndac_w(this, 0);
} else {
// pull NDAC high if not listener and low if listener
m_bus->ndac_w(this, listening ? 0 : 1);
}
}
if (m_gpib_loop_state == GRID210X_GPIB_STATE_IDLE) {
if (atn) {
// pull NDAC low
m_bus->ndac_w(this, 0);
} else {
// pull NDAC high if not listener and low if listener
m_bus->ndac_w(this, listening ? 0 : 1);
}
}
}
void grid210x_device::ieee488_ren(int state) {
LOG("grid210x_device ren state set to %d\n", state);
LOG("grid210x_device ren state set to %d\n", state);
}
grid2101_hdd_device::grid2101_hdd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: grid210x_device(mconfig, GRID2101_HDD, tag, owner, clock, 4, identify_response, attotime::from_usec(150))
: grid210x_device(mconfig, GRID2101_HDD, tag, owner, clock, 4, identify_response, attotime::from_usec(150))
{
}

View File

@ -2,7 +2,7 @@
// copyright-holders:Sergey Svishchev
/***************************************************************************
DEC PC11 paper tape reader and punch controller (punch not implemented)
DEC PC11 paper tape reader and punch controller (punch not implemented)
***************************************************************************/

View File

@ -2,7 +2,7 @@
// copyright-holders:Sergey Svishchev
/***************************************************************************
DEC PC11 paper tape reader and punch controller (punch not implemented)
DEC PC11 paper tape reader and punch controller (punch not implemented)
***************************************************************************/

View File

@ -54,7 +54,7 @@ private:
class qbus_device : public device_t,
public device_memory_interface,
public device_z80daisy_interface
public device_z80daisy_interface
{
public:
// construction/destruction

View File

@ -84,7 +84,7 @@
V2: D7 BDI ROM_latch (0=enable, 1=disble), D4 - FDC HLT, D3 - SIDE, D0-2 - floppy drive select (bitmask, active low).
V3-V4: D7 BDI ROM_latch (0=enable, 1=disble), D6 - FDC DDEN, D4 - SIDE, D3 - FDC HLT, D2 - FDC /MR (reset), D0-1 - floppy drive select (binary value).
CBI clones: D5 - printer port /STROBE
IO read port 0b1xxxx111 <- D7 - FDC INTRQ, D6 - FDC DRQ
IO read port 0b1xxxx111 <- D7 - FDC INTRQ, D6 - FDC DRQ
IO read/write ports 0b0YYxx111 - access FDC ports YY
So mostly the same as beta128, except for new BDI ROM_latch bit

View File

@ -11,7 +11,7 @@
is moved from 3cxx to 3dxx for example)
TODO:
original ROMs should have bits 0 and 7 swapped
original ROMs should have bits 0 and 7 swapped
there were many unofficial ROMs available for this, make them
available for use.

View File

@ -2,8 +2,8 @@
// copyright-holders:MetalliC
/**********************************************************************
Didaktik D40/D80 disk interface
(C) 1991 Didaktik Scalica
Didaktik D40/D80 disk interface
(C) 1991 Didaktik Scalica
**********************************************************************/

View File

@ -11,8 +11,8 @@
Currently implementation is similar to single stepping
with single cycle
- Implement and acknowlodge remain registers;
- Improve delay slot display in debugger (highlight current instruction
doesn't work but instruction hook does);
- Improve delay slot display in debugger (highlight current instruction
doesn't work but instruction hook does);
***************************************************************************/
@ -1292,10 +1292,10 @@ void jaguar_cpu_device::io_common_map(address_map &map)
map(0x00, 0x03).rw(FUNC(jaguar_cpu_device::flags_r), FUNC(jaguar_cpu_device::flags_w));
map(0x04, 0x07).w(FUNC(jaguar_cpu_device::matrix_control_w));
map(0x08, 0x0b).w(FUNC(jaguar_cpu_device::matrix_address_w));
// map(0x0c, 0x0f) endian
// map(0x0c, 0x0f) endian
map(0x10, 0x13).w(FUNC(jaguar_cpu_device::pc_w));
map(0x14, 0x17).rw(FUNC(jaguar_cpu_device::status_r), FUNC(jaguar_cpu_device::control_w));
// map(0x18, 0x1b) implementation specific
// map(0x18, 0x1b) implementation specific
map(0x1c, 0x1f).rw(FUNC(jaguar_cpu_device::div_remainder_r), FUNC(jaguar_cpu_device::div_control_w));
}
@ -1374,7 +1374,7 @@ void jaguar_cpu_device::pc_w(offs_t offset, u32 data, u32 mem_mask)
* so that Power-On endianness doesn't matter. 1=Big Endian
* ---- -x-- Instruction endianness
* ---- --x- Pixel endianness (GPU only)
* ---- ---x I/O endianness
* ---- ---x I/O endianness
*/
// TODO: just log if anything farts for now, change to bit struct once we have something to test out
void jaguar_cpu_device::end_w(offs_t offset, u32 data, u32 mem_mask)

View File

@ -6,16 +6,16 @@
AMD Am2901B / Am2901C
Four-Bit Bipolar Microprocessor Slice
To Do:
- Opcode hookup
- Verification
To Do:
- Opcode hookup
- Verification
***************************************************************************/
#include "emu.h"
#include "am2901b.h"
#define VERBOSE (1)
#define VERBOSE (1)
#include "logmacro.h"
/*****************************************************************************/

View File

@ -212,10 +212,10 @@ void sunplus_gcm394_base_device::trigger_systemm_dma(int channel)
// what is it waiting for when we need these? (needed on some service mode screens)
//if (mem.read_word(0x3f368) == 0x4840)
// mem.write_word(0x3f368, 0x4841); // cars 2 IRQ? wait hack
// mem.write_word(0x3f368, 0x4841); // cars 2 IRQ? wait hack
//if (mem.read_word(0x4d8d4) == 0x4840)
// mem.write_word(0x4d8d4, 0x4841); // golden tee IRQ? wait hack
// mem.write_word(0x4d8d4, 0x4841); // golden tee IRQ? wait hack
// clear params after operation

View File

@ -373,7 +373,7 @@ uint32_t gcm394_base_video_device::screen_update(screen_device &screen, bitmap_r
}
//const uint16_t bgcol = 0x7c1f; // magenta
// const uint16_t bgcol = 0x0000; // black
// const uint16_t bgcol = 0x0000; // black
bool highres;
if (m_707f & 0x0010)
{

View File

@ -81,8 +81,8 @@ void i80130_device::io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
//-------------------------------------------------
//ROM_START( i80130 )
// ROM_REGION16_LE( 0x4000, "rom", 0 )
// ROM_LOAD( "80130", 0x0000, 0x4000, NO_DUMP )
// ROM_REGION16_LE( 0x4000, "rom", 0 )
// ROM_LOAD( "80130", 0x0000, 0x4000, NO_DUMP )
//ROM_END
@ -92,7 +92,7 @@ void i80130_device::io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
//const tiny_rom_entry *i80130_device::device_rom_region() const
//{
// return ROM_NAME( i80130 );
// return ROM_NAME( i80130 );
//}

View File

@ -34,7 +34,7 @@
#define LOG_DEBUG (1U << 2)
//#define LOG_MASK (LOG_GENERAL | LOG_DEV_CALLS | LOG_DEBUG)
#define LOG_MASK (0)
#define LOG_MASK (0)
#define LOGDEVCALLS(...) LOGMASKED(LOG_DEV_CALLS, __VA_ARGS__)
#define LOGDEBUG(...) LOGMASKED(LOG_DEBUG, __VA_ARGS__)
@ -870,7 +870,7 @@ void netlist_mame_stream_output_device::process(netlist::netlist_time_ext tim, n
int pos = (tim - m_last_buffer_time) / m_sample_time;
//if (pos > m_bufsize)
// throw emu_fatalerror("sound %s: pos %d exceeded bufsize %d\n", name().c_str(), pos, m_bufsize);
// throw emu_fatalerror("sound %s: pos %d exceeded bufsize %d\n", name().c_str(), pos, m_bufsize);
while (m_buffer.size() < pos )
{
m_buffer.push_back(static_cast<stream_sample_t>(m_cur));
@ -1375,7 +1375,7 @@ void netlist_mame_sound_device::device_start()
void netlist_mame_sound_device::nl_register_devices(netlist::nlparse_t &parser) const
{
//parser.factory().add<nld_sound_out>("NETDEV_SOUND_OUT",
// netlist::factory::properties("+CHAN", PSOURCELOC()));
// netlist::factory::properties("+CHAN", PSOURCELOC()));
parser.factory().add<nld_sound_in>("NETDEV_SOUND_IN",
netlist::factory::properties("-", PSOURCELOC()));
}

View File

@ -32,7 +32,7 @@ TODO:
#define LOG_MMU (1 << 5)
#define LOG_IRQS (1 << 6)
#define LOG_UNKNOWN (1 << 7)
#define LOG_MORE_UART (1 << 8)
#define LOG_MORE_UART (1 << 8)
#define LOG_ALL (LOG_I2C | LOG_UART | LOG_TIMERS | LOG_DMA | LOG_MMU | LOG_IRQS | LOG_UNKNOWN)
#define VERBOSE (0)

View File

@ -27,7 +27,7 @@ DEFINE_DEVICE_TYPE(SPG28X_IO, spg28x_io_device, "spg28x_io", "SPG280-series Syst
#define LOG_EXT_MEM (1U << 27)
#define LOG_EXTINT (1U << 28)
#define LOG_SPI (1U << 29)
#define LOG_ADC (1U << 30)
#define LOG_ADC (1U << 30)
#define LOG_IO (LOG_IO_READS | LOG_IO_WRITES | LOG_IRQS | LOG_GPIO | LOG_UART | LOG_I2C | LOG_TIMERS | LOG_EXTINT | LOG_UNKNOWN_IO | LOG_SPI | LOG_ADC)
#define LOG_ALL (LOG_IO | LOG_VLINES | LOG_SEGMENT | LOG_WATCHDOG | LOG_FIQ | LOG_SIO | LOG_EXT_MEM | LOG_ADC)

View File

@ -140,8 +140,8 @@ void spg_renderer_device::draw_tilestrip(bool read_from_csspace, uint32_t screen
{
m_linebuf[realdrawpos] = (mix_channel((uint8_t)(m_linebuf[realdrawpos] >> 10) & 0x1f, (rgb >> 10) & 0x1f, blendlevel) << 10) |
(mix_channel((uint8_t)(m_linebuf[realdrawpos] >> 5) & 0x1f, (rgb >> 5) & 0x1f, blendlevel) << 5) |
(mix_channel((uint8_t)(m_linebuf[realdrawpos] >> 0) & 0x1f, (rgb >> 0) & 0x1f, blendlevel) << 0);
(mix_channel((uint8_t)(m_linebuf[realdrawpos] >> 5) & 0x1f, (rgb >> 5) & 0x1f, blendlevel) << 5) |
(mix_channel((uint8_t)(m_linebuf[realdrawpos] >> 0) & 0x1f, (rgb >> 0) & 0x1f, blendlevel) << 0);
}
else
{
@ -417,7 +417,7 @@ void spg_renderer_device::draw_page(bool read_from_csspace, bool has_extended_ti
{
// used by senspeed
//if (m_video_regs_1e != 0x0000)
// popmessage("vertical compression mode with non-0 step amount %04x offset %04x step %04x\n", m_video_regs_1c, m_video_regs_1d, m_video_regs_1e);
// popmessage("vertical compression mode with non-0 step amount %04x offset %04x step %04x\n", m_video_regs_1c, m_video_regs_1d, m_video_regs_1e);
logical_scanline = m_ycmp_table[scanline];
if (logical_scanline == 0xffffffff)
@ -617,7 +617,7 @@ void spg_renderer_device::draw_sprite(bool read_from_csspace, bool has_extended_
uint32_t screenwidth = 320;
// uint32_t screenheight = 240;
// uint32_t screenheight = 240;
uint32_t screenheight = 256;
uint32_t xmask = 0x1ff;
uint32_t ymask = 0x1ff;
@ -625,7 +625,7 @@ void spg_renderer_device::draw_sprite(bool read_from_csspace, bool has_extended_
if (highres)
{
screenwidth = 640;
// screenheight = 480;
// screenheight = 480;
screenheight = 512;
xmask = 0x3ff;
ymask = 0x3ff;
@ -637,7 +637,7 @@ void spg_renderer_device::draw_sprite(bool read_from_csspace, bool has_extended_
if (!(m_video_regs_42 & 0x0002))
{
x = ((screenwidth/2) + x) - tile_w / 2;
// y = ((screenheight/2) - y) - (tile_h / 2) + 8;
// y = ((screenheight/2) - y) - (tile_h / 2) + 8;
y = ((screenheight/2) - y) - (tile_h / 2);
}

View File

@ -33,15 +33,15 @@ DEFINE_DEVICE_TYPE(SUN4C_MMU, sun4c_mmu_device, "sun4c_mmu", "Sun 4c MMU")
#define LOG_TYPE1_TIMEOUT (1U << 12)
#define LOG_UNKNOWN_SPACE (1U << 13)
#define LOG_WRITE_PROTECT (1U << 14)
#define LOG_READ_PROTECT (1U << 15)
#define LOG_READ_PROTECT (1U << 15)
#define LOG_PARITY (1U << 16)
#define LOG_ALL_ASI (1U << 17) // WARNING: Heavy!
#define LOG_UNKNOWN_ASI (1U << 18)
#define LOG_SEGMENT_FLUSH (1U << 19)
#define LOG_PAGE_FLUSH (1U << 20)
#define LOG_CONTEXT_FLUSH (1U << 21)
#define LOG_CACHE_FILLS (1U << 22)
#define LOG_PAGE_ENTRIES (1U << 23)
#define LOG_UNKNOWN_ASI (1U << 18)
#define LOG_SEGMENT_FLUSH (1U << 19)
#define LOG_PAGE_FLUSH (1U << 20)
#define LOG_CONTEXT_FLUSH (1U << 21)
#define LOG_CACHE_FILLS (1U << 22)
#define LOG_PAGE_ENTRIES (1U << 23)
#if SUN4CMMU_LOG_MEM_ACCESSES
static FILE* s_mem_log = nullptr;

View File

@ -15,7 +15,7 @@
#include "machine/ram.h"
#include "machine/z80scc.h"
#define SUN4CMMU_LOG_MEM_ACCESSES (0)
#define SUN4CMMU_LOG_MEM_ACCESSES (0)
class sun4_mmu_base_device : public device_t, public sparc_mmu_interface
{

View File

@ -419,7 +419,7 @@ void c219_device::sound_stream_update(sound_stream &stream, stream_sample_t **in
if (ch_noise(v)) // noise
{
m_lfsr = (m_lfsr >> 1) ^ ((-(m_lfsr & 1)) & 0xfff6);
m_lfsr = (m_lfsr >> 1) ^ ((-(m_lfsr & 1)) & 0xfff6);
lastdt = s16(m_lfsr);
}
else

View File

@ -1,19 +1,19 @@
// license:BSD-3-Clause
// copyright-holders:Alex Marshall,nimitz,austere
/*
ICS2115 by Raiden II team (c) 2010
members: austere, nimitz, Alex Marshal
ICS2115 by Raiden II team (c) 2010
members: austere, nimitz, Alex Marshal
Original driver by O. Galibert, ElSemi
Original driver by O. Galibert, ElSemi
Use tab size = 4 for your viewing pleasure.
Use tab size = 4 for your viewing pleasure.
TODO:
- Implement Panning, Chip has support stereo
- Verify BYTE/ROMEN pin behaviors
- DRAM, DMA, MIDI interface is unimplemented
- Verify interrupt, envelope, timer period
- Verify unemulated registers
TODO:
- Implement Panning, Chip has support stereo
- Verify BYTE/ROMEN pin behaviors
- DRAM, DMA, MIDI interface is unimplemented
- Verify interrupt, envelope, timer period
- Verify unemulated registers
*/
#include "emu.h"

View File

@ -150,8 +150,8 @@ private:
bool m_irq_on;
/*
Unknown variable, seems to be effected by 0x12. Further investigation
Required.
Unknown variable, seems to be effected by 0x12. Further investigation
Required.
*/
u8 m_vmode;
};

View File

@ -65,21 +65,21 @@ static constexpr int CLOCKS_PER_SAMPLE = 64;
// device type definition
DEFINE_DEVICE_TYPE(K053260, k053260_device, "k053260", "K053260 KDSC")
;
;
// Pan multipliers. Set according to integer angles in degrees, amusingly.
// Exact precision hard to know, the floating point-ish output format makes
// comparisons iffy. So we used a 1.16 format.
const int k053260_device::pan_mul[8][2] = {
{ 0, 0 }, // No sound for pan 0
{ 65536, 0 }, // 0 degrees
{ 59870, 26656 }, // 24 degrees
{ 53684, 37950 }, // 35 degrees
{ 46341, 46341 }, // 45 degrees
{ 37950, 53684 }, // 55 degrees
{ 26656, 59870 }, // 66 degrees
{ 0, 65536 } // 90 degrees
{ 0, 0 }, // No sound for pan 0
{ 65536, 0 }, // 0 degrees
{ 59870, 26656 }, // 24 degrees
{ 53684, 37950 }, // 35 degrees
{ 46341, 46341 }, // 45 degrees
{ 37950, 53684 }, // 55 degrees
{ 26656, 59870 }, // 66 degrees
{ 0, 65536 } // 90 degrees
};

View File

@ -141,7 +141,7 @@ void debugger_console::execute_help_custom(int ref, const std::vector<std::strin
}
/*------------------------------------------------------------
execute_condump - execute the condump command
execute_condump - execute the condump command
------------------------------------------------------------*/
void debugger_console::execute_condump(int ref, const std::vector<std::string>& params)
@ -584,8 +584,8 @@ std::string debugger_console::cmderr_to_string(CMDERR error)
/*-------------------------------------------------
print_core - write preformatted text
to the debug console
print_core - write preformatted text
to the debug console
-------------------------------------------------*/
void debugger_console::print_core(const char *text)
@ -597,8 +597,8 @@ void debugger_console::print_core(const char *text)
}
/*-------------------------------------------------
print_core_wrap - write preformatted text
to the debug console, with wrapping
print_core_wrap - write preformatted text
to the debug console, with wrapping
-------------------------------------------------*/
void debugger_console::print_core_wrap(const char *text, int wrapcol)

View File

@ -318,8 +318,8 @@ text_buffer_lines text_buffer_get_lines(text_buffer* text)
}
/*---------------------------------------------------------------------
text_buffer_lines::text_buffer_line_iterator::operator*
Gets the line that the iterator currently points to.
text_buffer_lines::text_buffer_line_iterator::operator*
Gets the line that the iterator currently points to.
-----------------------------------------------------------------------*/
text_buffer_line text_buffer_lines::text_buffer_line_iterator::operator*() const
@ -343,8 +343,8 @@ text_buffer_line text_buffer_lines::text_buffer_line_iterator::operator*() const
}
/*---------------------------------------------------------------------
text_buffer_lines::text_buffer_line_iterator::operator++
Moves to the next line.
text_buffer_lines::text_buffer_line_iterator::operator++
Moves to the next line.
-----------------------------------------------------------------------*/
text_buffer_lines::text_buffer_line_iterator& text_buffer_lines::text_buffer_line_iterator::operator++()
@ -356,8 +356,8 @@ text_buffer_lines::text_buffer_line_iterator& text_buffer_lines::text_buffer_lin
}
/*------------------------------------------------------
text_buffer_lines::begin()
Returns an iterator that points to the first line.
text_buffer_lines::begin()
Returns an iterator that points to the first line.
--------------------------------------------------------*/
text_buffer_lines::iterator text_buffer_lines::begin() const
@ -366,8 +366,8 @@ text_buffer_lines::iterator text_buffer_lines::begin() const
}
/*-----------------------------------------------------------
text_buffer_lines::begin()
Returns an iterator that points just past the last line.
text_buffer_lines::begin()
Returns an iterator that points just past the last line.
-------------------------------------------------------------*/
text_buffer_lines::iterator text_buffer_lines::end() const

View File

@ -21,49 +21,49 @@ struct text_buffer;
struct text_buffer_line
{
const char *text;
size_t length;
const char *text;
size_t length;
};
/* helper class that makes it possible to iterate over the lines of a text_buffer */
class text_buffer_lines
{
private:
text_buffer& m_buffer;
text_buffer& m_buffer;
public:
text_buffer_lines(text_buffer& buffer) : m_buffer(buffer) { }
text_buffer_lines(text_buffer& buffer) : m_buffer(buffer) { }
class text_buffer_line_iterator
{
text_buffer& m_buffer;
s32 m_lineptr;
public:
text_buffer_line_iterator(text_buffer& buffer, s32 lineptr) :
m_buffer(buffer),
m_lineptr(lineptr)
{
}
class text_buffer_line_iterator
{
text_buffer& m_buffer;
s32 m_lineptr;
public:
text_buffer_line_iterator(text_buffer& buffer, s32 lineptr) :
m_buffer(buffer),
m_lineptr(lineptr)
{
}
/* technically this isn't a valid forward iterator, because
* operator * doesn't return a reference
*/
text_buffer_line operator *() const;
text_buffer_line_iterator& operator ++();
/* technically this isn't a valid forward iterator, because
* operator * doesn't return a reference
*/
text_buffer_line operator *() const;
text_buffer_line_iterator& operator ++();
bool operator != (const text_buffer_line_iterator& rhs)
{
return m_lineptr != rhs.m_lineptr;
}
/* according to C++ spec, only != is needed; == is present for completeness. */
bool operator == (const text_buffer_line_iterator& rhs) { return !(operator !=(rhs)); }
};
bool operator != (const text_buffer_line_iterator& rhs)
{
return m_lineptr != rhs.m_lineptr;
}
/* according to C++ spec, only != is needed; == is present for completeness. */
bool operator == (const text_buffer_line_iterator& rhs) { return !(operator !=(rhs)); }
};
typedef text_buffer_line_iterator iterator;
typedef text_buffer_line_iterator const iterator_const;
typedef text_buffer_line_iterator iterator;
typedef text_buffer_line_iterator const iterator_const;
iterator begin() const;
iterator end() const;
iterator begin() const;
iterator end() const;
};
/***************************************************************************

View File

@ -15,8 +15,8 @@ template<int AddrWidth, int DataWidth, int AddrShift, endianness_t Endian>
void device_rom_interface<AddrWidth, DataWidth, AddrShift, Endian>::override_address_width(u8 width)
{
// cach does not need level match, only specific does at this point
// if(emu::detail::handler_entry_dispatch_level(AddrWidth) != emu::detail::handler_entry_dispatch_level(width))
// emu_fatalerror("%s: Widths %d and %d are incompatible", device().tag(), width, AddrWidth);
// if(emu::detail::handler_entry_dispatch_level(AddrWidth) != emu::detail::handler_entry_dispatch_level(width))
// emu_fatalerror("%s: Widths %d and %d are incompatible", device().tag(), width, AddrWidth);
m_rom_config.m_addr_width = width;
}

View File

@ -459,7 +459,7 @@ enum
// INPUT_STRING_8C_4C, // 0.500000
// INPUT_STRING_6C_3C, // 0.500000
INPUT_STRING_4C_2C, // 0.500000
INPUT_STRING_5C_2C, // 0.500000
INPUT_STRING_5C_2C, // 0.500000
INPUT_STRING_2C_1C, // 0.500000
// INPUT_STRING_9C_5C, // 0.555556
// INPUT_STRING_7C_4C, // 0.571429

View File

@ -912,7 +912,7 @@ void natural_keyboard::dump(std::ostream &str) const
{
// identify the keys used
for (std::size_t field = 0; (entry.field.size() > field) && entry.field[field]; ++field)
util::stream_format(str, "%s'%s'", first ? "" : ", ", entry.field[field]->name());
util::stream_format(str, "%s'%s'", first ? "" : ", ", entry.field[field]->name());
// carriage return
str << '\n';

View File

@ -239,7 +239,7 @@ namespace
}
private:
std::array<std::pair<const char *, T>, SIZE> m_map;
std::array<std::pair<const char *, T>, SIZE> m_map;
};
};

View File

@ -508,7 +508,7 @@ bool imd_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
desc_pc_sector sects[256];
for(int i=0; i<m_sector_count.back(); i++) {
uint8_t stype = img[pos++];
uint8_t stype = img[pos++];
sects[i].track = m_tnum.back().size() ? m_tnum.back()[i] : m_track.back();
sects[i].head = m_hnum.back().size() ? m_hnum.back()[i] : m_head.back();
sects[i].sector = m_snum.back()[i];
@ -629,7 +629,7 @@ bool imd_format::save(io_generic* io, floppy_image* image)
mode = 1;
io_generic_write(io, &mode, pos++, 1);
io_generic_write(io, &sdata, pos, actual_size);
pos += actual_size;
pos += actual_size;
}
}
}

View File

@ -157,7 +157,7 @@ namespace devices
if (doOUT)
//for (std::size_t i = 0; i < m_NO; ++i)
// m_Q[i].push((out >> i) & 1, tim[t[i]]);
// m_Q[i].push((out >> i) & 1, tim[t[i]]);
this->push(out, t);
else
{

View File

@ -13,8 +13,8 @@ NETLIST_START(perf)
ANALOG_INPUT(V5, 5)
CLOCK(CLK, 100) // clock for driving the 74393
CLOCK(CLK2, 3) // off-beat clock for master reset
CLOCK(CLK, 100) // clock for driving the 74393
CLOCK(CLK2, 3) // off-beat clock for master reset
TTL_74393_DIP(TESTCHIP)
NET_C(V5, CLK.VCC, CLK2.VCC, TESTCHIP.14)

View File

@ -124,20 +124,20 @@ namespace factory {
{ }
template <std::size_t... Is>
dev_uptr make_device(device_arena &pool,
netlist_state_t &anetlist,
const pstring &name, std::tuple<Args...>& args, std::index_sequence<Is...>)
{
return plib::make_unique<C>(pool, anetlist, name, std::forward<Args>(std::get<Is>(args))...);
}
template <std::size_t... Is>
dev_uptr make_device(device_arena &pool,
netlist_state_t &anetlist,
const pstring &name, std::tuple<Args...>& args, std::index_sequence<Is...>)
{
return plib::make_unique<C>(pool, anetlist, name, std::forward<Args>(std::get<Is>(args))...);
}
dev_uptr make_device(device_arena &pool,
netlist_state_t &anetlist,
const pstring &name, std::tuple<Args...>& args)
{
return make_device(pool, anetlist, name, args, std::index_sequence_for<Args...>{});
}
dev_uptr make_device(device_arena &pool,
netlist_state_t &anetlist,
const pstring &name, std::tuple<Args...>& args)
{
return make_device(pool, anetlist, name, args, std::index_sequence_for<Args...>{});
}
dev_uptr make_device(device_arena &pool,
netlist_state_t &anetlist,

View File

@ -32,21 +32,21 @@ namespace netlist
/// The following code is an example on how to add the device to
/// the netlist factory.
///
/// const pstring pin(m_in);
/// pstring dname = pstring("OUT_") + pin;
/// const pstring pin(m_in);
/// pstring dname = pstring("OUT_") + pin;
///
/// const auto lambda = [this](auto &in, netlist::nl_fptype val)
/// {
/// this->cpu()->update_icount(in.exec().time());
/// this->m_delegate(val, this->cpu()->local_time());
/// this->cpu()->check_mame_abort_slice();
/// };
/// const auto lambda = [this](auto &in, netlist::nl_fptype val)
/// {
/// this->cpu()->update_icount(in.exec().time());
/// this->m_delegate(val, this->cpu()->local_time());
/// this->cpu()->check_mame_abort_slice();
/// };
///
/// using lb_t = decltype(lambda);
/// using cb_t = netlist::interface::NETLIB_NAME(analog_callback)<lb_t>;
/// using lb_t = decltype(lambda);
/// using cb_t = netlist::interface::NETLIB_NAME(analog_callback)<lb_t>;
///
/// parser.factory().add<cb_t, netlist::nl_fptype, lb_t>(dname,
/// netlist::factory::properties("-", PSOURCELOC()), 1e-6, std::forward<lb_t>(lambda));
/// parser.factory().add<cb_t, netlist::nl_fptype, lb_t>(dname,
/// netlist::factory::properties("-", PSOURCELOC()), 1e-6, std::forward<lb_t>(lambda));
///
template <typename FUNC>
@ -232,7 +232,7 @@ namespace netlist
object_array_t<param_fp_t, MAX_INPUT_CHANNELS> m_param_mults;
object_array_t<param_fp_t, MAX_INPUT_CHANNELS> m_param_offsets;
std::array<param_fp_t *, MAX_INPUT_CHANNELS> m_params;
std::array<T *, MAX_INPUT_CHANNELS> m_buffers;
std::array<T *, MAX_INPUT_CHANNELS> m_buffers;
};
} // namespace interface

View File

@ -189,7 +189,7 @@ namespace plib {
using base_allocator_typex = typename BASEARENA::template allocator_type<std::pair<void * const, info>>;
std::unordered_map<void *, info, std::hash<void *>, std::equal_to<void *>,
base_allocator_typex> m_info;
// std::unordered_map<void *, info> m_info;
// std::unordered_map<void *, info> m_info;
std::vector<block *, typename BASEARENA::template allocator_type<block *>> m_blocks;
};

View File

@ -117,7 +117,7 @@ namespace plib {
|| ci::os() == ci_os::EMSCRIPTEN)) ? 2 :
(ci::type() == ci_compiler::CLANG || ci::type() == ci_compiler::GCC) ? 1 :
(ci::type() == ci_compiler::MSC && ci::m64()) ? 3 :
0
0
};
};
@ -416,10 +416,10 @@ namespace plib {
/// plib::late_pmfp<plib::pmfp<void, pstring>> a(&nld_7493::printer);
/// // Store the a object somewhere
///
/// // After full construction ...
/// // After full construction ...
///
/// auto dele = a(this);
/// dele(pstring("Hello World!"));
/// auto dele = a(this);
/// dele(pstring("Hello World!"));
///
template<typename T>
class late_pmfp

View File

@ -89,7 +89,7 @@ namespace plib {
std::size_t capacity() const noexcept { return m_list.capacity() - 1; }
bool empty() const noexcept { return (m_end == &m_list[1]); }
template<bool KEEPSTAT, typename... Args>
template<bool KEEPSTAT, typename... Args>
void emplace(Args&&... args) noexcept
{
// Lock

View File

@ -148,7 +148,7 @@ namespace plib
using arch = std::integral_constant<ci_arch, ci_arch::ARM>;
#elif defined(__MIPSEL__) || defined(__mips_isa_rev) || defined(__mips64)
using arch = std::integral_constant<ci_arch, ci_arch::MIPS>;
#else
#else
using arch = std::integral_constant<ci_arch, ci_arch::UNKNOWN>;
#endif
#if defined(__MINGW32__)

View File

@ -40,7 +40,7 @@
class bu3905_device : public device_t
{
public: // construction/destruction
public: // construction/destruction
bu3905_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
void write(offs_t offset, u8 data);

View File

@ -50,7 +50,7 @@
// numeric instability. Also adjusts values of resistors associated with these
// oscillators to maintain their frequency and voltage levels.
#define CONVERGENCE_FRONTIERS 1
#define CONVERGENCE_FRONTIERS 1
static NETLIST_START(mc3340)
@ -840,13 +840,13 @@ NETLIST_START(280zzzap)
// All together, loosening both tolerances and reducing accuracy
// increases speed by ~10%, but it also causes audible "crackling".
// PARAM(Solver.RELTOL, 1e-2) // default 1e-3 (several % faster, but < quality)
// PARAM(Solver.VNTOL, 5e-3) // default 1e-7 (several % faster, but < quality)
// PARAM(Solver.ACCURACY, 1e-3) // default 1e-7 (few % faster)
// PARAM(Solver.RELTOL, 1e-2) // default 1e-3 (several % faster, but < quality)
// PARAM(Solver.VNTOL, 5e-3) // default 1e-7 (several % faster, but < quality)
// PARAM(Solver.ACCURACY, 1e-3) // default 1e-7 (few % faster)
// PARAM(Solver.DYNAMIC_TS, 1)
// PARAM(Solver.DYNAMIC_LTE, 1e-4) // default 1e-5
// PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-8) // default 1e-6
// PARAM(Solver.DYNAMIC_TS, 1)
// PARAM(Solver.DYNAMIC_LTE, 1e-4) // default 1e-5
// PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-8) // default 1e-6
ANALOG_INPUT(I_V12, 12)
ANALOG_INPUT(I_V5, 5)
@ -899,27 +899,27 @@ NETLIST_START(280zzzap)
// Power pins for logic inputs:
NET_C(I_V5.Q,
I_F4_2.VCC, I_F4_5.VCC, I_F4_7.VCC, I_F4_10.VCC,
I_F5_2.VCC, I_F5_5.VCC, I_F5_7.VCC, I_F5_10.VCC,
I_F5_12.VCC, I_F5_15.VCC)
I_F4_2.VCC, I_F4_5.VCC, I_F4_7.VCC, I_F4_10.VCC,
I_F5_2.VCC, I_F5_5.VCC, I_F5_7.VCC, I_F5_10.VCC,
I_F5_12.VCC, I_F5_15.VCC)
NET_C(GND,
I_F4_2.GND, I_F4_5.GND, I_F4_7.GND, I_F4_10.GND,
I_F5_2.GND, I_F5_5.GND, I_F5_7.GND, I_F5_10.GND,
I_F5_12.GND, I_F5_15.GND)
I_F4_2.GND, I_F4_5.GND, I_F4_7.GND, I_F4_10.GND,
I_F5_2.GND, I_F5_5.GND, I_F5_7.GND, I_F5_10.GND,
I_F5_12.GND, I_F5_15.GND)
// Power inputs for the LM3900 op-amps. These aren't shown on the
// schematics, but it looks like 5-volt power is needed to get proper
// results.
NET_C(I_V5.Q,
H4_1.VCC, H4_2.VCC, H4_3.VCC, H4_4.VCC,
H5_1.VCC, H5_2.VCC, H5_3.VCC, H5_4.VCC,
J3_1.VCC, J3_2.VCC, J3_3.VCC, J3_4.VCC,
J5_1.VCC, J5_2.VCC, J5_3.VCC)
H4_1.VCC, H4_2.VCC, H4_3.VCC, H4_4.VCC,
H5_1.VCC, H5_2.VCC, H5_3.VCC, H5_4.VCC,
J3_1.VCC, J3_2.VCC, J3_3.VCC, J3_4.VCC,
J5_1.VCC, J5_2.VCC, J5_3.VCC)
NET_C(GND,
H4_1.GND, H4_2.GND, H4_3.GND, H4_4.GND,
H5_1.GND, H5_2.GND, H5_3.GND, H5_4.GND,
J3_1.GND, J3_2.GND, J3_3.GND, J3_4.GND,
J5_1.GND, J5_2.GND, J5_3.GND)
H4_1.GND, H4_2.GND, H4_3.GND, H4_4.GND,
H5_1.GND, H5_2.GND, H5_3.GND, H5_4.GND,
J3_1.GND, J3_2.GND, J3_3.GND, J3_4.GND,
J5_1.GND, J5_2.GND, J5_3.GND)
// Power inputs for the CD4016 switches. Again, these aren't shown on
// the schematics, but 5-volt power must be used for the switches to

View File

@ -3302,11 +3302,11 @@ ROM_START( donpachihk )
ROM_END
/*
When you press the 2p start button, it pauses the game (music still plays).
Pressing the 1p start button unpauses the game.
If you press both 1p start and 2p start at the same time, the game lets you play in slow motion (music still plays normally).
When you press the 2p start button, it pauses the game (music still plays).
Pressing the 1p start button unpauses the game.
If you press both 1p start and 2p start at the same time, the game lets you play in slow motion (music still plays normally).
This was on the label of the ROM chip:
This was on the label of the ROM chip:
*/
ROM_START( donpachijs )

View File

@ -63,11 +63,11 @@ TODO:
// TODO: NTSC system clock is 30.2098 MHz; additional 4.9152 MHz XTAL provided for UART
#define CLOCK_A 30_MHz_XTAL
#define LOG_DVC (1 << 1)
#define LOG_QUIZARD_READS (1 << 2)
#define LOG_QUIZARD_WRITES (1 << 3)
#define LOG_QUIZARD_OTHER (1 << 4)
#define LOG_UART (1 << 5)
#define LOG_DVC (1 << 1)
#define LOG_QUIZARD_READS (1 << 2)
#define LOG_QUIZARD_WRITES (1 << 3)
#define LOG_QUIZARD_OTHER (1 << 4)
#define LOG_UART (1 << 5)
#define VERBOSE (0)
#include "logmacro.h"

View File

@ -2129,10 +2129,10 @@ void cischeat_state::scudhamm(machine_config &config)
m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
// measured values for Arm Champs II: VSync: 59.1784Hz, HSync: 15082.0 kHz
m_screen->set_raw(XTAL(12'000'000)/2,396,0,256,256,16,240);
// m_screen->set_refresh_hz(30); //TODO: wrong!
// m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500 * 3) /* not accurate */);
// m_screen->set_size(256, 256);
// m_screen->set_visarea(0, 256-1, 0 +16, 256-1 -16);
// m_screen->set_refresh_hz(30); //TODO: wrong!
// m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500 * 3) /* not accurate */);
// m_screen->set_size(256, 256);
// m_screen->set_visarea(0, 256-1, 0 +16, 256-1 -16);
m_screen->set_screen_update(FUNC(cischeat_state::screen_update_scudhamm));
m_screen->set_palette(m_palette);

View File

@ -84,8 +84,8 @@ void consoemt_state::io_map(address_map &map)
map(0x220, 0x220).portr("NUMBUS-H");
map(0x230, 0x230).portr("NUMFAB-L");
map(0x240, 0x240).portr("NUMFAB-H");
// map(0x250, 0x250).r // read on int2
// map(0x260, 0x260).r // read on int1
// map(0x250, 0x250).r // read on int2
// map(0x260, 0x260).r // read on int1
map(0x280, 0x281).rw(m_lcdc, FUNC(hd44780_device::read), FUNC(hd44780_device::write));
}

View File

@ -35,13 +35,13 @@
#define LOG_FDC_CTRL (1 << 6)
#define LOG_FDC_PORT (1 << 7)
#define LOG_FDC_CMD (1 << 8)
#define LOG_FDC_MECH (1 << 9)
#define LOG_FDC_MECH (1 << 9)
#define LOG_OUTPUT_TIMING (1 << 10)
#define LOG_BRUSH_ADDR (1 << 11)
#define LOG_STORE_ADDR (1 << 12)
#define LOG_COMBINER (1 << 13)
#define LOG_SIZE_CARD (1 << 14)
#define LOG_FILTER_CARD (1 << 15)
#define LOG_STORE_ADDR (1 << 12)
#define LOG_COMBINER (1 << 13)
#define LOG_SIZE_CARD (1 << 14)
#define LOG_FILTER_CARD (1 << 15)
#define LOG_ALL (LOG_UNKNOWN | LOG_CSR | LOG_CTRLBUS | LOG_SYS_CTRL | LOG_FDC_CTRL | LOG_FDC_PORT | LOG_FDC_CMD | LOG_FDC_MECH | LOG_BRUSH_ADDR | \
LOG_STORE_ADDR | LOG_COMBINER | LOG_SIZE_CARD | LOG_FILTER_CARD)
@ -1276,55 +1276,55 @@ void dpb7000_state::cpu_ctrlbus_w(uint16_t data)
((data >> 8) & 0xf) == 6 ? "Initiate" : "Continue");
/*if (((data >> 8) & 0xf) == 6)
{
m_size_h = 0;
m_size_v = 0;
m_size_h = 0;
m_size_v = 0;
}
uint16_t disc_buffer_addr = 0;
uint16_t bx = m_bxlen_counter - m_bxlen;
uint16_t by = m_bylen_counter - m_bylen;
while (m_diskbuf_data_count > 0 && m_bylen_counter < 0x1000)
{
uint8_t hv = (m_size_h << 4) | m_size_v;
uint8_t hv_permuted = bitswap<8>(hv,4,6,0,2,5,7,1,3);
uint8_t hv = (m_size_h << 4) | m_size_v;
uint8_t hv_permuted = bitswap<8>(hv,4,6,0,2,5,7,1,3);
if (BIT(m_brush_addr_func, 7)) // Luma Enable
{
//printf("%02x ", m_diskbuf_ram[disc_buffer_addr]);
m_brushstore_lum[by * 256 + hv_permuted] = m_diskbuf_ram[disc_buffer_addr];
}
if (BIT(m_brush_addr_func, 7)) // Luma Enable
{
//printf("%02x ", m_diskbuf_ram[disc_buffer_addr]);
m_brushstore_lum[by * 256 + hv_permuted] = m_diskbuf_ram[disc_buffer_addr];
}
disc_buffer_addr++;
m_diskbuf_data_count--;
disc_buffer_addr++;
m_diskbuf_data_count--;
if (BIT(m_brush_addr_func, 8)) // Chroma Enable
{
m_brushstore_chr[by * 256 + hv_permuted] = m_diskbuf_ram[disc_buffer_addr];
}
if (BIT(m_brush_addr_func, 8)) // Chroma Enable
{
m_brushstore_chr[by * 256 + hv_permuted] = m_diskbuf_ram[disc_buffer_addr];
}
disc_buffer_addr++;
m_diskbuf_data_count--;
disc_buffer_addr++;
m_diskbuf_data_count--;
m_size_h++;
if (m_size_h == 16)
{
m_size_h = 0;
m_size_v++;
if (m_size_v == 16)
{
m_size_v = 0;
}
}
m_size_h++;
if (m_size_h == 16)
{
m_size_h = 0;
m_size_v++;
if (m_size_v == 16)
{
m_size_v = 0;
}
}
bx++;
m_bxlen_counter++;
if (m_bxlen_counter == 0x1000)
{
bx = 0;
by++;
m_bxlen_counter = m_bxlen;
m_bylen_counter++;
//printf("\n");
}
bx++;
m_bxlen_counter++;
if (m_bxlen_counter == 0x1000)
{
bx = 0;
by++;
m_bxlen_counter = m_bxlen;
m_bylen_counter++;
//printf("\n");
}
}*/
m_diskseq_complete_clk->adjust(attotime::from_msec(1));
break;
@ -1563,7 +1563,7 @@ void dpb7000_state::fdd_index_callback(floppy_image_device *floppy, int state)
bit_idx++;
//if ((bit_idx % 8) == 0)
//{
// printf("%02x ", (uint8_t)curr_window);
// printf("%02x ", (uint8_t)curr_window);
//}
if (!seen_pregap && curr_window == PREGAP_MARK)

View File

@ -1126,7 +1126,7 @@ IRQ_CALLBACK_MEMBER(galaxian_state::froggermc_audiocpu_irq_ack)
*
*************************************/
uint8_t galaxian_state::frogf_ppi8255_r(offs_t offset)
uint8_t galaxian_state::frogf_ppi8255_r(offs_t offset)
{
/* the decoding here is very simplistic, and you can address both simultaneously */
uint8_t result = 0xff;

View File

@ -62,8 +62,8 @@
the High School Musical part has its own test mode which tests a different part of the ROM, use the same code but after selecting the game from menu
--- the individual CS spaces could (and probably should?) be done with a bunch of extra memory spaces rather than the cs0_r / cs0_w etc. but that would mean yet
another trip through the memory system for almost everything and at ~100Mhz that is slow.
--- the individual CS spaces could (and probably should?) be done with a bunch of extra memory spaces rather than the cs0_r / cs0_w etc. but that would mean yet
another trip through the memory system for almost everything and at ~100Mhz that is slow.
*/

View File

@ -2,18 +2,18 @@
// copyright-holders:David Haywood
/*
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
----
----
GPL16250 Mobigo support
the original Mobigo is ROM+RAM config
the Mobigo 2 is NAND+RAM config
cartridges are compatible
GPL16250 Mobigo support
the original Mobigo is ROM+RAM config
the Mobigo 2 is NAND+RAM config
cartridges are compatible
*/
#include "emu.h"

View File

@ -1,15 +1,15 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/*
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
----
----
GPL16250 games using NAND + RAM configuration
GPL16250 games using NAND + RAM configuration
*/
/*

View File

@ -1,15 +1,15 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/*
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
----
----
GPL16250 games using ROM (no extra RAM) configuration
GPL16250 games using ROM (no extra RAM) configuration
*/
#include "emu.h"

View File

@ -1,15 +1,15 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/*
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
----
----
GPL16250 games using ROM + RAM configuration
GPL16250 games using ROM + RAM configuration
*/
#include "emu.h"
@ -324,7 +324,7 @@ void paccon_game_state::machine_reset()
{
jak_s500_game_state::machine_reset();
m_maincpu->space(AS_PROGRAM).install_read_handler(0x6593, 0x6593, read16smo_delegate(*this, FUNC(paccon_game_state::paccon_speedup_hack_r)));
// install_speedup_hack(0x6593, 0x30033);
// install_speedup_hack(0x6593, 0x30033);
}
void jak_pf_game_state::machine_reset()

View File

@ -1,15 +1,15 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/*
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 / GPAC800 / GMC384 / GCM420 related support
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
GPL16250 is the GeneralPlus / SunPlus part number
GPAC800 is the JAKKS Pacific codename
GMC384 / GCM420 is what is printed on the die
----
----
GPL16250 games using SPI Flash + RAM configuration
GPL16250 games using SPI Flash + RAM configuration
*/
#include "emu.h"

View File

@ -29,24 +29,24 @@
- MK5089N - DTMF generator
- ...
high-resolution motherboard photo (enough to read chip numbers): http://deltacxx.insomnia247.nl/gridcompass/motherboard.jpg
high-resolution motherboard photo (enough to read chip numbers): http://deltacxx.insomnia247.nl/gridcompass/motherboard.jpg
differences between models:
- Compass 110x do not have GRiDROM slots.
- Compass II (112x, 113x) have 4 of them.
- Compass II 113x have 512x256 screen size
- Compass 11x9 have 512K ram
- Compass II have DMA addresses different from Compass 110x
differences between models:
- Compass 110x do not have GRiDROM slots.
- Compass II (112x, 113x) have 4 of them.
- Compass II 113x have 512x256 screen size
- Compass 11x9 have 512K ram
- Compass II have DMA addresses different from Compass 110x
to do:
- keyboard: decode and add the rest of keycodes
keycode table can be found here on page A-2:
http://deltacxx.insomnia247.nl/gridcompass/large_files/Yahoo%20group%20backup/RuGRiD-Laptop/files/6_GRiD-OS-Programming/3_GRiD-OS-Reference.pdf
keycode table can be found here on page A-2:
http://deltacxx.insomnia247.nl/gridcompass/large_files/Yahoo%20group%20backup/RuGRiD-Laptop/files/6_GRiD-OS-Programming/3_GRiD-OS-Reference.pdf
- EAROM, RTC
- serial port (incomplete), modem (incl. DTMF generator)
- proper custom DMA logic timing
- implement units other than 1101
- proper custom DMA logic timing
- implement units other than 1101
missing dumps:
@ -56,9 +56,9 @@
- external floppy and hard disk (2101, 2102)
to boot CCOS 3.0.1:
- convert GRIDOS.IMD to IMG format
- convert GRIDOS.IMD to IMG format
- create zero-filled 384K bubble memory image and attach it as -memcard
- attach floppy with `-ieee_grid grid2102 -flop GRIDOS.IMG`
- attach floppy with `-ieee_grid grid2102 -flop GRIDOS.IMG`
- use grid1101 with 'ccos' ROM
***************************************************************************/

View File

@ -56,7 +56,7 @@ protected:
void gscpm_state::gscpm_mem(address_map &map)
{
//map(0x0000, 0x3fff).rom("maincpu"); // This is ROM after reset, and RAM is switched in when CP/M is booted
// (will install handlers dynamically)
// (will install handlers dynamically)
map(0x4000, 0xffff).ram();
}

View File

@ -20,7 +20,7 @@ class gsz80_state : public driver_device
public:
gsz80_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu") // Tag name for Z80 is "maincpu"
, m_maincpu(*this, "maincpu") // Tag name for Z80 is "maincpu"
, m_acia(*this, "acia") // Tag name for UART is "acia"
{ }

View File

@ -599,8 +599,8 @@ void gticlub_state::gn680_memmap(address_map &map)
map(0x000000, 0x01ffff).rom();
map(0x200000, 0x203fff).ram();
map(0x300000, 0x300001).w(FUNC(gticlub_state::gn680_sysctrl_w));
// map(0x310000, 0x311fff).nopw(); //056230 regs?
// map(0x312000, 0x313fff).nopw(); //056230 ram?
// map(0x310000, 0x311fff).nopw(); //056230 regs?
// map(0x312000, 0x313fff).nopw(); //056230 ram?
}
/*****************************************************************************/

View File

@ -232,7 +232,7 @@ void homelab3_state::homelab3_mem(address_map &map)
map(0x4000, 0xcfff).ram();
map(0xe800, 0xefff).r(FUNC(homelab3_state::exxx_r));
map(0xf800, 0xffff).lr8(NAME([this] (offs_t offset) { if(m_ramhere) return m_ram[offset]; else return m_vram[offset]; }))
.lw8(NAME([this] (offs_t offset, u8 data) { if(m_ramhere) m_ram[offset]=data; else m_vram[offset]=data; }));
.lw8(NAME([this] (offs_t offset, u8 data) { if(m_ramhere) m_ram[offset]=data; else m_vram[offset]=data; }));
}
void homelab3_state::homelab3_io(address_map &map)

View File

@ -2452,7 +2452,7 @@ void hp9845c_state::advance_gv_fsm(bool ds , bool trigger)
// process data on R4 or R6
if (act_trig) {
switch (m_gv_cmd) {
case 1: // read words command
case 1: // read words command
break;
case 0x8: // load X I/O address
m_gv_word_x_position = ~m_gv_data_w & 0x3f; // 0..34
@ -2494,7 +2494,7 @@ void hp9845c_state::advance_gv_fsm(bool ds , bool trigger)
default:
logerror("unknown 98770A command = %d, parm = 0x%04x\n", m_gv_cmd, m_gv_data_w);
}
if (m_gv_cmd == 1) { // Read words
if (m_gv_cmd == 1) { // Read words
m_gv_fsm_state = GV_STAT_WAIT_MEM_0;
} else if (m_gv_cmd == 0xd) {
m_gv_fsm_state = GV_STAT_WAIT_DS_2; // -> get second data word

View File

@ -2631,7 +2631,7 @@ ROM_START( gpgolfa ) /* P/N 1047 REV. 1 main board + P/N 1038 REV2 sound board *
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "golf_sound_12-19-91_v.96.u27", 0x00000, 0x10000, CRC(f46b4300) SHA1(7be1878b72c55fb83b2cae3b79b1f65fe8825b4a) ) /* 27C512 with the first 0x8000 as 0xFF fill - handwritten label GOLF SOUND 12/19/91 V.96 */
// ROM_LOAD( "golf_sound.u27", 0x08000, 0x8000, CRC(3183d7f3) SHA1(482411947aa3074cec7d4491f6ee64785894d27c) ) /* Different than sndv1.u27 */
// ROM_LOAD( "golf_sound.u27", 0x08000, 0x8000, CRC(3183d7f3) SHA1(482411947aa3074cec7d4491f6ee64785894d27c) ) /* Different than sndv1.u27 */
ROM_REGION( 0xc0000, "grom", 0 )
ROM_LOAD( "grom00.grom0", 0x00000, 0x40000, CRC(c3a7b54b) SHA1(414d693bc5337d578d2630817dd647cf7e5cbcf7) )

View File

@ -4,7 +4,7 @@
TRS-80 Radio Shack MicroColor Computer
May 2020: Added emulation for Darren Atkinson's MCX 128.
May 2020: Added emulation for Darren Atkinson's MCX 128.
***************************************************************************/

View File

@ -3040,7 +3040,7 @@ ROM_START( twinbeeb )
ROM_LOAD16_WORD( "boot.bin", 0x000, 0x1e0, CRC(ee6e93d7) SHA1(7302c08a726a760f59d6837be8fd10bbd1f79da0) )
ROM_REGION( 0x806*0x90, "bubblememory", ROMREGION_ERASE00 )
// ROM_LOAD16_WORD_SWAP( "bubble_twinbeeb", 0x000, 0x48360, CRC(21599cf5) SHA1(7eb068e10134d5c66f7f90f6d6b265353b7bd8be) ) // re-encoded data
// ROM_LOAD16_WORD_SWAP( "bubble_twinbeeb", 0x000, 0x48360, CRC(21599cf5) SHA1(7eb068e10134d5c66f7f90f6d6b265353b7bd8be) ) // re-encoded data
ROM_REGION( 0x806*0x80, "bubblememory_temp", 0 )
ROM_LOAD( "twinbee.bin", 0x00000, 0x40300, CRC(4d396a0a) SHA1(ee922a1bd7062c0fcf358f5079cca6424aadc975) )

View File

@ -2038,7 +2038,7 @@ CONS( 2017, rtvgc300fz,0, 0, nes_vt_cy_bigger, nes_vt, nes_vt_cy_lexibook_stat
(units for use with TV)
Lexibook Retro TV Game Console (300 Games) - Cars
Lexibook Retro TV Game Console (300 Games) - PJ Masks
Lexibook Retro TV Game Console (300 Games) - PJ Masks
(more?)
*/

View File

@ -68,11 +68,11 @@
* Everything needs to be verified on real PCB or schematics
Known issues/to-do's Panther:
* Analog sounds (same as Red Alert?)
* AY sounds needs an actual ref, they are dubious at best
* Analog sounds (same as Red Alert?)
* AY sounds needs an actual ref, they are dubious at best
* No title screen?
* Fails ROM check in service mode with "ROM ERR 0", bootleg/prototype set?
* Likewise sports corrupted words in input test
* Fails ROM check in service mode with "ROM ERR 0", bootleg/prototype set?
* Likewise sports corrupted words in input test
********************************************************************
IREM 'WW III' 1981
@ -96,18 +96,18 @@
********************************************************************
Panther notes:
- Hold start 1 on boot, press coin chutes or service button to cycle:
-> RAM/ROM check
-> Continous Video drawing check (only if above is success)
-> (NMI again goes to PROM check and beyond)
- Hold start 2 on boot:
-> PROM check?
-> Input check
-> Freeze
- Notes on "ROM ERR 0":
PC=b482 ROM check main routine
PC=b5cc SUM16 individual ROM chunk (ROM 0 -> 8000-87ff, ROM 1 -> 8800-8fff ...)
PC=b5b4 Taking the branch -> failed check
- Hold start 1 on boot, press coin chutes or service button to cycle:
-> RAM/ROM check
-> Continous Video drawing check (only if above is success)
-> (NMI again goes to PROM check and beyond)
- Hold start 2 on boot:
-> PROM check?
-> Input check
-> Freeze
- Notes on "ROM ERR 0":
PC=b482 ROM check main routine
PC=b5cc SUM16 individual ROM chunk (ROM 0 -> 8000-87ff, ROM 1 -> 8800-8fff ...)
PC=b5b4 Taking the branch -> failed check
****************************************************************************/

View File

@ -440,8 +440,8 @@ void seattle_state::machine_start()
m_maincpu->mips3drc_set_options(MIPS3DRC_FASTEST_OPTIONS + MIPS3DRC_STRICT_VERIFY);
// configure fast RAM regions
// m_maincpu->add_fastram(0x00000000, 0x007fffff, FALSE, m_rambase);
// m_maincpu->add_fastram(0x1fc00000, 0x1fc7ffff, TRUE, m_rombase);
// m_maincpu->add_fastram(0x00000000, 0x007fffff, FALSE, m_rambase);
// m_maincpu->add_fastram(0x1fc00000, 0x1fc7ffff, TRUE, m_rombase);
save_item(NAME(m_widget.ethernet_addr));
save_item(NAME(m_widget.irq_num));
@ -2668,7 +2668,7 @@ void seattle_state::init_hyprdriv()
// speedups
m_maincpu->mips3drc_add_hotspot(0x801643BC, 0x3C03801B, 250); // confirmed
m_maincpu->mips3drc_add_hotspot(0x80011FB8, 0x8E020018, 250); // confirmed
// m_maincpu->mips3drc_add_hotspot(0x80136A80, 0x3C02801D, 250); // potential
// m_maincpu->mips3drc_add_hotspot(0x80136A80, 0x3C02801D, 250); // potential
}

View File

@ -2315,11 +2315,11 @@ void seta2_state::seta2(machine_config &config)
/*
P0-113A PCB has different sound/cpu input clock (32.53047MHz / 2, common input clock is 50MHz / 3)
and/or some PCB variant has uses this input clock?
reference:
https://youtu.be/6f-znVzcrmg, https://youtu.be/zJi_d463UQE (gundamex)
https://youtu.be/Ung9XeLisV0 (grdiansa)
P0-113A PCB has different sound/cpu input clock (32.53047MHz / 2, common input clock is 50MHz / 3)
and/or some PCB variant has uses this input clock?
reference:
https://youtu.be/6f-znVzcrmg, https://youtu.be/zJi_d463UQE (gundamex)
https://youtu.be/Ung9XeLisV0 (grdiansa)
*/
void seta2_state::seta2_32m(machine_config &config)
{

View File

@ -133,10 +133,10 @@
#include "speaker.h"
#include "tilemap.h"
#define FIRST_CLOCK XTAL(5'000'000)
#define SECOND_CLOCK XTAL(20'000'000)
#define CPU_CLOCK (FIRST_CLOCK) // verified 5 MHz.
#define SND_CLOCK (SECOND_CLOCK / 8) // verified 2.5 MHz.
#define FIRST_CLOCK XTAL(5'000'000)
#define SECOND_CLOCK XTAL(20'000'000)
#define CPU_CLOCK (FIRST_CLOCK) // verified 5 MHz.
#define SND_CLOCK (SECOND_CLOCK / 8) // verified 2.5 MHz.
class smotor_state : public driver_device
@ -304,7 +304,7 @@ void smotor_state::smotor_palette(palette_device &palette) const
void smotor_state::smotor_cpu_map(address_map &map)
{
map(0x0000, 0xbfff).rom();
map(0xf000, 0xf7ff).ram().w(FUNC(smotor_state::videoram_w)).share("videoram");
map(0xf000, 0xf7ff).ram().w(FUNC(smotor_state::videoram_w)).share("videoram");
map(0xf800, 0xffff).ram();
}
@ -339,7 +339,7 @@ void smotor_state::cpu_io_videoreg_w(offs_t offset, uint8_t data)
case 0x00:
m_videoreg[offset] = data;
m_ym2413->set_output_gain(ALL_OUTPUTS, BIT(data, 4) ? 1.0f : 0.0f);
if ((BIT(data, 0)) & (BIT(data, 2))) // coin lock + coin a, used for init.
if ((BIT(data, 0)) & (BIT(data, 2))) // coin lock + coin a, used for init.
break;
machine().bookkeeping().coin_lockout_global_w(BIT(data, 0)); // coin lock.
machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); // coin b counter.
@ -376,7 +376,7 @@ static INPUT_PORTS_START( smotor )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_START("DSW1")
PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) )
@ -393,7 +393,7 @@ static INPUT_PORTS_START( smotor )
PORT_DIPSETTING( 0x02, DEF_STR( 4C_5C ) )
PORT_DIPSETTING( 0x01, DEF_STR( 5C_1C ) )
PORT_DIPSETTING( 0x00, DEF_STR( 5C_2C ) )
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) )
@ -412,26 +412,26 @@ static INPUT_PORTS_START( smotor )
PORT_DIPSETTING( 0x00, DEF_STR( 5C_2C ) )
PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x06, 0x04, DEF_STR( Difficult ) ) PORT_DIPLOCATION("SW2:2,3")
PORT_DIPNAME( 0x06, 0x04, DEF_STR( Difficult ) ) PORT_DIPLOCATION("SW2:2,3")
PORT_DIPSETTING( 0x06, "Easy (with gas cans, only trucks)" )
PORT_DIPSETTING( 0x04, "Normal (with gas cans, trucks and cars)" )
PORT_DIPSETTING( 0x02, "Medium (no gas cans, both trucks and cars)" )
PORT_DIPSETTING( 0x00, "Hard (no gas cans, both trucks and cars)" )
PORT_DIPNAME( 0x18, 0x18, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("SW2:4,5")
PORT_DIPNAME( 0x18, 0x18, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("SW2:4,5")
PORT_DIPSETTING( 0x18, "1:00" )
PORT_DIPSETTING( 0x10, "1:20" )
PORT_DIPSETTING( 0x08, "1:40" )
PORT_DIPSETTING( 0x00, "2:00" )
PORT_DIPNAME( 0x20, 0x20, "Cycle / Car" ) PORT_DIPLOCATION("SW2:6")
PORT_DIPNAME( 0x20, 0x20, "Cycle / Car" ) PORT_DIPLOCATION("SW2:6")
PORT_DIPSETTING( 0x20, "Cycle" )
PORT_DIPSETTING( 0x00, "Car" )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:7")
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8")
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END

View File

@ -669,7 +669,7 @@ CUSTOM_INPUT_MEMBER(spg2xx_game_fordrace_state::wheel_r)
CUSTOM_INPUT_MEMBER(spg2xx_game_fordrace_state::wheel2_r)
{
// return 0x0800;
// return 0x0800;
uint16_t dat = ioport("WHEEL_REAL")->read();
return ((dat >> 1) ^ 0xfff) + (dat & 1);
@ -1076,9 +1076,9 @@ void spg2xx_game_senspeed_state::senspeed(machine_config &config)
m_maincpu->portb_out().set(FUNC(spg2xx_game_senspeed_state::portb_w));
/*
ATMLH806
02B 1
A7J4565E
ATMLH806
02B 1
A7J4565E
*/
I2C_24C01(config, "i2cmem", 0); // saves 0x80 bytes, but loading fails?
}

View File

@ -3465,7 +3465,7 @@ ROM_START( cleopatro )
ROM_LOAD32_BYTE("ic20.bin", 0x000000, 0x20000, CRC(80dfc893) SHA1(192e121394825ba982998e831108310c26718ec3) )
ROM_LOAD32_BYTE("ic19.bin", 0x000001, 0x20000, CRC(666e8ca6) SHA1(4f75e4510975c04b66b0eeb1a861c47a3442b190) )
ROM_LOAD32_BYTE("ic18.bin", 0x000002, 0x20000, CRC(9f2d4f69) SHA1(481e7a525e749deb069adf92d335d1c89497f9ab) )
ROM_LOAD32_BYTE("ic17.bin", 0x000003, 0x20000, CRC(f892f60e) SHA1(60f1a6c6e780adfbd17892c783920ae88266f0e2) ) // 1 byte difference in 1st 0x20000 bytes of e28-07.bin (0x1FFFF==03 vs 0x00 for e28-07.bin)
ROM_LOAD32_BYTE("ic17.bin", 0x000003, 0x20000, CRC(f892f60e) SHA1(60f1a6c6e780adfbd17892c783920ae88266f0e2) ) // 1 byte difference in 1st 0x20000 bytes of e28-07.bin (0x1FFFF==03 vs 0x00 for e28-07.bin)
ROM_REGION( 0x100000, "sprites" , 0) /* Sprites */
ROM_LOAD16_BYTE("e28-02.bin", 0x000000, 0x080000, CRC(b20d47cb) SHA1(6888e5564688840fed1c123ab38467066cd59c7f) )

View File

@ -196,7 +196,7 @@ uint8_t tiki100_state::keyboard_r()
}
m_keylatch++;
if (m_keylatch == 16) m_keylatch = 0; // Column selected by a 4-bit counter
if (m_keylatch == 16) m_keylatch = 0; // Column selected by a 4-bit counter
return data;
}

View File

@ -80,7 +80,7 @@ void ultim809_state::mem_map(address_map &map)
map(0x0000, 0x7fff).lrw8(NAME([this] (offs_t offset) { return m_ram[offset]; }), NAME([this] (offs_t offset, u8 data) { m_ram[offset] = data; } ));
// main ram any bank
map(0x8000, 0xbfff).lrw8(NAME([this] (offs_t offset) { return m_ram[offset | (m_membank << 14)]; }),
NAME([this] (offs_t offset, u8 data) { m_ram[offset | (m_membank << 14)] = data; } )); // u8
NAME([this] (offs_t offset, u8 data) { m_ram[offset | (m_membank << 14)] = data; } )); // u8
// devices
map(0xc000, 0xc00f).m(m_via, FUNC(via6522_device::map)); // u11
map(0xc400, 0xc407).rw(m_uart, FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w)); // u16

View File

@ -1716,7 +1716,7 @@ void vegas_state::vegas_cs2_map(address_map &map)
void vegas_state::vegas_cs3_map(address_map &map)
{
map(0x00000000, 0x00000003).rw(FUNC(vegas_state::analog_port_r), FUNC(vegas_state::analog_port_w));
// map(0x00001000, 0x00001003).rw(FUNC(vegas_state::lcd_r), FUNC(vegas_state::lcd_w));
// map(0x00001000, 0x00001003).rw(FUNC(vegas_state::lcd_r), FUNC(vegas_state::lcd_w));
}
void vegas_state::vegas_cs4_map(address_map &map)
@ -1741,7 +1741,7 @@ void vegas_state::vegas_cs6_map(address_map &map)
void vegas_state::vegas_cs7_map(address_map &map)
{
// map(0x00000000, 0x00000003).rw(FUNC(vegas_state::nss_r), FUNC(vegas_state::nss_w));
// map(0x00000000, 0x00000003).rw(FUNC(vegas_state::nss_r), FUNC(vegas_state::nss_w));
map(0x00001000, 0x0000100f).rw(FUNC(vegas_state::ethernet_r), FUNC(vegas_state::ethernet_w));
map(0x00005000, 0x00005003).w(m_dcs, FUNC(dcs_audio_device::dsio_idma_addr_w)); // if (m_dcs_idma_cs == 7)
map(0x00007000, 0x00007003).rw(m_dcs, FUNC(dcs_audio_device::dsio_idma_data_r), FUNC(dcs_audio_device::dsio_idma_data_w)); // if (m_dcs_idma_cs == 7)

View File

@ -3,18 +3,18 @@
/*
Williams WPC (Alpha Numeric)
Note: It is possible to get funhouse (fh_l3 at least) in-game by coining it up, then holding the following keys,
and pressing the start button, or else you get "PINBALL MISSING":
W (right ball shooter, c6 r2)
E (right trough, c6 r3)
[ (dummy jaw opto, c5 r1)
] (right outlane, c5 r2)
\ (right slingshot kicker, c5 r3)
It's possible not all of these are strictly necessary to make it work.
Note: It is possible to get funhouse (fh_l3 at least) in-game by coining it up, then holding the following keys,
and pressing the start button, or else you get "PINBALL MISSING":
W (right ball shooter, c6 r2)
E (right trough, c6 r3)
[ (dummy jaw opto, c5 r1)
] (right outlane, c5 r2)
\ (right slingshot kicker, c5 r3)
It's possible not all of these are strictly necessary to make it work.
TODO: replace the 8x8 pinball input matrix keymap by some sort of common interface for the williams system 6, 9, 10, 11 and wpc_an;
while the actual purpose of the switches differ per machine (and some machines like wpc_an have one switch permanently closed as a test switch),
the entire matrix should be mapped to keyboard keys, there are more than enough keys on a 104 key keyboard to do it, even avoiding MAME's reserved keys.
TODO: replace the 8x8 pinball input matrix keymap by some sort of common interface for the williams system 6, 9, 10, 11 and wpc_an;
while the actual purpose of the switches differ per machine (and some machines like wpc_an have one switch permanently closed as a test switch),
the entire matrix should be mapped to keyboard keys, there are more than enough keys on a 104 key keyboard to do it, even avoiding MAME's reserved keys.
*/

View File

@ -27,10 +27,10 @@
#define CSR_ERR (1u << CSR_V_ERR)
#define clear_virq(_callback, _csr, _ie, _intrq) \
#define clear_virq(_callback, _csr, _ie, _intrq) \
if ((_csr) & (_ie)) { (_intrq) = CLEAR_LINE; }
#define raise_virq(_callback, _csr, _ie, _intrq) \
#define raise_virq(_callback, _csr, _ie, _intrq) \
if ((_csr) & (_ie)) { (_intrq) = ASSERT_LINE; _callback (ASSERT_LINE); }

View File

@ -36,8 +36,8 @@ TODO:
#define LOG_READS (1 << 6)
#define LOG_WRITES (1 << 7)
#define LOG_UNKNOWNS (1 << 8)
#define LOG_RAM (1 << 9)
#define LOG_ALL (LOG_DECODES | LOG_SAMPLES | LOG_COMMANDS | LOG_SECTORS | LOG_IRQS | LOG_READS | LOG_WRITES | LOG_UNKNOWNS | LOG_RAM)
#define LOG_RAM (1 << 9)
#define LOG_ALL (LOG_DECODES | LOG_SAMPLES | LOG_COMMANDS | LOG_SECTORS | LOG_IRQS | LOG_READS | LOG_WRITES | LOG_UNKNOWNS | LOG_RAM)
#define VERBOSE (LOG_ALL)
#include "logmacro.h"
@ -751,9 +751,9 @@ void cdicdic_device::process_delayed_command()
m_intreq_callback(ASSERT_LINE);
//else
//{
// LOGMASKED(LOG_IRQS, "%s: Setting CDIC interrupt line for ignored audio sector (m_channel %04x, m_audio_channel %04x, sector channel %04x\n",
// machine().describe_context(), m_channel, m_audio_channel, (1 << buffer[CDIC_SECTOR_CHAN2]));
// m_intreq_callback(ASSERT_LINE);
// LOGMASKED(LOG_IRQS, "%s: Setting CDIC interrupt line for ignored audio sector (m_channel %04x, m_audio_channel %04x, sector channel %04x\n",
// machine().describe_context(), m_channel, m_audio_channel, (1 << buffer[CDIC_SECTOR_CHAN2]));
// m_intreq_callback(ASSERT_LINE);
//}
}
else if ((buffer[CDIC_SECTOR_SUBMODE2] & (CDIC_SUBMODE_DATA | CDIC_SUBMODE_AUDIO | CDIC_SUBMODE_VIDEO)) == 0x00)

View File

@ -23,7 +23,7 @@ TODO:
#define LOG_READS (1 << 2)
#define LOG_WRITES (1 << 3)
#define LOG_UNKNOWNS (1 << 4)
#define LOG_ALL (LOG_IRQS | LOG_COMMANDS | LOG_READS | LOG_WRITES | LOG_UNKNOWNS)
#define LOG_ALL (LOG_IRQS | LOG_COMMANDS | LOG_READS | LOG_WRITES | LOG_UNKNOWNS)
#define VERBOSE (0)
#include "logmacro.h"

View File

@ -25,113 +25,113 @@ DEFINE_DEVICE_TYPE(FP6000_KBD, fp6000_kbd_device, "fp6000_kbd", "FP-6000 Keyboar
static INPUT_PORTS_START( keyboard )
PORT_START("row_0")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 00 */ PORT_CODE(KEYCODE_PRTSCR) PORT_CHAR(UCHAR_MAMEKEY(PRTSCR)) PORT_NAME("Copy")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 01 */ PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 02 */ PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 03 */ PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 04 */ PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 05 */ PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5))
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 06 */ PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 07 */ PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7))
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 08 */ PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8))
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 09 */ PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F9))
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0a */ PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F10))
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0b */ PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F11))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0c */ PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) PORT_NAME("Ins")
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0d */ PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) PORT_NAME("Del")
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0e */ PORT_CODE(KEYCODE_HOME) PORT_CHAR(0) PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_NAME("Cls / Home")
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0f */ PORT_CODE(KEYCODE_SCRLOCK) PORT_CHAR(UCHAR_MAMEKEY(SCRLOCK)) PORT_NAME("SLock / Break")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 01 */ PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 02 */ PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 03 */ PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 04 */ PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 05 */ PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5))
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 06 */ PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 07 */ PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7))
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 08 */ PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8))
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 09 */ PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F9))
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0a */ PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F10))
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0b */ PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F11))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0c */ PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) PORT_NAME("Ins")
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0d */ PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) PORT_NAME("Del")
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0e */ PORT_CODE(KEYCODE_HOME) PORT_CHAR(0) PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_NAME("Cls / Home")
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 0f */ PORT_CODE(KEYCODE_SCRLOCK) PORT_CHAR(UCHAR_MAMEKEY(SCRLOCK)) PORT_NAME("SLock / Break")
PORT_START("row_1")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 10 */ PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 11 */ PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 12 */ PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 13 */ PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 14 */ PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 15 */ PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 16 */ PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 17 */ PORT_CODE(KEYCODE_0) PORT_CHAR('0')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 18 */ PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 19 */ PORT_CODE(KEYCODE_TILDE) PORT_CHAR('^') PORT_CHAR('~')
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1a */ PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1b */ PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1c */ PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CHAR(UCHAR_MAMEKEY(PGUP)) PORT_NAME("\xe2\x86\x91 PgUp")
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1d */ PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_NAME("\xe2\x86\x92 PgRt")
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1e */ PORT_CODE(KEYCODE_END) PORT_CHAR(0) PORT_CHAR(UCHAR_MAMEKEY(END)) PORT_NAME("Clr / End")
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1f */ PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 11 */ PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 12 */ PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 13 */ PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 14 */ PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 15 */ PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 16 */ PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 17 */ PORT_CODE(KEYCODE_0) PORT_CHAR('0')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 18 */ PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 19 */ PORT_CODE(KEYCODE_TILDE) PORT_CHAR('^') PORT_CHAR('~')
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1a */ PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1b */ PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1c */ PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CHAR(UCHAR_MAMEKEY(PGUP)) PORT_NAME("\xe2\x86\x91 PgUp")
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1d */ PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_NAME("\xe2\x86\x92 PgRt")
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1e */ PORT_CODE(KEYCODE_END) PORT_CHAR(0) PORT_CHAR(UCHAR_MAMEKEY(END)) PORT_NAME("Clr / End")
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 1f */ PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
PORT_START("row_2")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 20 */ PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 21 */ PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 22 */ PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 23 */ PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 24 */ PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 25 */ PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 26 */ PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 27 */ PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 28 */ PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('@') PORT_CHAR('`')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 29 */ PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') PORT_NAME("\xC2\xA5 |") // ¥
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2a */ PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2b */ PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_NAME("\xe2\x86\x90 PgLt")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2c */ PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CHAR(UCHAR_MAMEKEY(PGDN)) PORT_NAME("\xe2\x86\x93 PgDn")
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2d */ PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2e */ PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2f */ PORT_CODE(KEYCODE_TAB) PORT_CHAR(9)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 21 */ PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 22 */ PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 23 */ PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 24 */ PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 25 */ PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 26 */ PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 27 */ PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 28 */ PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('@') PORT_CHAR('`')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 29 */ PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') PORT_NAME("\xC2\xA5 |") // ¥
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2a */ PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2b */ PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_NAME("\xe2\x86\x90 PgLt")
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2c */ PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CHAR(UCHAR_MAMEKEY(PGDN)) PORT_NAME("\xe2\x86\x93 PgDn")
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2d */ PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2e */ PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 2f */ PORT_CODE(KEYCODE_TAB) PORT_CHAR(9)
PORT_START("row_3")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 30 */ PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 31 */ PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 32 */ PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 33 */ PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 34 */ PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 35 */ PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 36 */ PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 37 */ PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 38 */ PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 39 */ PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_UNUSED) /* 3a */ // ?
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 3b */ PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 3c */ PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 3d */ PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_UNUSED) /* 3e */ // ?
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 3f */ PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) PORT_NAME("Ctrl")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 31 */ PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 32 */ PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 33 */ PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 34 */ PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 35 */ PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 36 */ PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 37 */ PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 38 */ PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 39 */ PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_UNUSED) /* 3a */ // ?
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 3b */ PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 3c */ PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 3d */ PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_UNUSED) /* 3e */ // ?
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 3f */ PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) PORT_NAME("Ctrl")
PORT_START("row_4")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 40 */ PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 41 */ PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 42 */ PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 43 */ PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 44 */ PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 45 */ PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 46 */ PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 47 */ PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 48 */ PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR('+')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 49 */ PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_UNUSED) /* 4a */ // ?
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4b */ PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4c */ PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4d */ PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4e */ PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4f */ PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) PORT_NAME("Alt")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 41 */ PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 42 */ PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 43 */ PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 44 */ PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 45 */ PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 46 */ PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 47 */ PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 48 */ PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR('+')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 49 */ PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_UNUSED) /* 4a */ // ?
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4b */ PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4c */ PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4d */ PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4e */ PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 4f */ PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) PORT_NAME("Alt")
PORT_START("row_5")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 50 */ PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 51 */ PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 52 */ PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 53 */ PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 54 */ PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 55 */ PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 56 */ PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 57 */ PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 58 */ PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 59 */ PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR(0) PORT_CHAR('_') PORT_NAME(" _")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5a */ PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT)) PORT_NAME("Kana")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5b */ PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5c */ PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5d */ PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5e */ PORT_CODE(KEYCODE_COMMA_PAD) PORT_CHAR(UCHAR_MAMEKEY(COMMA_PAD))
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5f */ PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_NAME("Caps")
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 51 */ PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 52 */ PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 53 */ PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 54 */ PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 55 */ PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 56 */ PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 57 */ PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 58 */ PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 59 */ PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR(0) PORT_CHAR('_') PORT_NAME(" _")
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5a */ PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT)) PORT_NAME("Kana")
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5b */ PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5c */ PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5d */ PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5e */ PORT_CODE(KEYCODE_COMMA_PAD) PORT_CHAR(UCHAR_MAMEKEY(COMMA_PAD))
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) /* 5f */ PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_NAME("Caps")
// codes 0x60 to 0x7f seem to be copies of other codes
// codes 0x60 to 0x7f seem to be copies of other codes
INPUT_PORTS_END
ioport_constructor fp6000_kbd_device::device_input_ports() const
@ -150,8 +150,8 @@ ioport_constructor fp6000_kbd_device::device_input_ports() const
fp6000_kbd_device::fp6000_kbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, FP6000_KBD, tag, owner, clock),
device_matrix_keyboard_interface(mconfig, *this, "row_0", "row_1", "row_2", "row_3", "row_4", "row_5"),
m_int_handler(*this)
device_matrix_keyboard_interface(mconfig, *this, "row_0", "row_1", "row_2", "row_3", "row_4", "row_5"),
m_int_handler(*this)
{
}
@ -180,8 +180,8 @@ void fp6000_kbd_device::device_reset()
start_processing(attotime::from_hz(9600));
typematic_stop();
m_status = 0x00;
m_data = 0x7f;
m_status = 0x00;
m_data = 0x7f;
}
//-------------------------------------------------
@ -190,28 +190,28 @@ void fp6000_kbd_device::device_reset()
uint8_t fp6000_kbd_device::read(offs_t offset)
{
uint8_t data = 0xff;
uint8_t data = 0xff;
switch (offset)
{
case 0:
if (0)
logerror("Read data from keyboard: %02x\n", m_data);
switch (offset)
{
case 0:
if (0)
logerror("Read data from keyboard: %02x\n", m_data);
m_int_handler(0);
m_status &= ~STATUS_DATA_AVAILABLE;
data = m_data;
break;
m_int_handler(0);
m_status &= ~STATUS_DATA_AVAILABLE;
data = m_data;
break;
case 1:
if (0)
logerror("Read status from keyboard: %02x\n", m_status);
case 1:
if (0)
logerror("Read status from keyboard: %02x\n", m_status);
data = m_status;
break;
}
data = m_status;
break;
}
return data;
return data;
}
//-------------------------------------------------
@ -220,34 +220,34 @@ uint8_t fp6000_kbd_device::read(offs_t offset)
void fp6000_kbd_device::write(offs_t offset, uint8_t data)
{
switch (offset)
{
case 0:
logerror("Write data to keyboard: %02x\n", data);
switch (offset)
{
case 0:
logerror("Write data to keyboard: %02x\n", data);
switch (data)
{
case 0x0f:
m_status &= ~STATUS_READY_FOR_DATA;
m_status |= STATUS_DATA_AVAILABLE;
m_data = 0x35; // or 0x40
break;
}
switch (data)
{
case 0x0f:
m_status &= ~STATUS_READY_FOR_DATA;
m_status |= STATUS_DATA_AVAILABLE;
m_data = 0x35; // or 0x40
break;
}
break;
break;
case 1:
logerror("Write command to keyboard: %02x\n", data);
case 1:
logerror("Write command to keyboard: %02x\n", data);
switch (data)
{
case 0x7e:
m_status |= STATUS_READY_FOR_DATA;
break;
}
switch (data)
{
case 0x7e:
m_status |= STATUS_READY_FOR_DATA;
break;
}
break;
}
break;
}
}
//-------------------------------------------------
@ -262,9 +262,9 @@ void fp6000_kbd_device::key_make(uint8_t row, uint8_t column)
{
send_key(code);
// no typematic for modifier keys
if (code != 0x3f && code != 0x4f && code != 0x50 && code != 0x5a && code != 0x5f)
typematic_start(row, column, attotime::from_msec(750), attotime::from_msec(50));
// no typematic for modifier keys
if (code != 0x3f && code != 0x4f && code != 0x50 && code != 0x5a && code != 0x5f)
typematic_start(row, column, attotime::from_msec(750), attotime::from_msec(50));
}
}
@ -280,7 +280,7 @@ void fp6000_kbd_device::key_break(uint8_t row, uint8_t column)
uint8_t code = translate(row, column);
if (code != 0x7f)
send_key(0x80 | code);
send_key(0x80 | code);
}
//-------------------------------------------------
@ -299,7 +299,7 @@ void fp6000_kbd_device::key_repeat(u8 row, u8 column)
uint8_t fp6000_kbd_device::translate(uint8_t row, uint8_t column)
{
return row * 16 + column;
return row * 16 + column;
}
//-------------------------------------------------
@ -308,7 +308,7 @@ uint8_t fp6000_kbd_device::translate(uint8_t row, uint8_t column)
void fp6000_kbd_device::send_key(uint8_t code)
{
m_status |= STATUS_DATA_AVAILABLE;
m_data = code;
m_int_handler(1);
m_status |= STATUS_DATA_AVAILABLE;
m_data = code;
m_int_handler(1);
}

View File

@ -44,19 +44,19 @@ protected:
virtual void key_repeat(uint8_t row, uint8_t column) override;
private:
devcb_write_line m_int_handler;
devcb_write_line m_int_handler;
enum
{
STATUS_READY_FOR_DATA = 0x01,
STATUS_DATA_AVAILABLE = 0x02
};
enum
{
STATUS_READY_FOR_DATA = 0x01,
STATUS_DATA_AVAILABLE = 0x02
};
uint8_t translate(uint8_t row, uint8_t column);
void send_key(uint8_t code);
uint8_t m_status;
uint8_t m_data;
uint8_t m_status;
uint8_t m_data;
};
// device type definition

View File

@ -401,13 +401,13 @@ void namcos2_state::sound_bankselect_w(uint8_t data)
uint16_t namcos2_state::c140_rom_r(offs_t offset)
{
/*
Verified from schematics:
MD0-MD3 : Connected in 3N "voice0" D0-D3 or D4-D7, Nibble changeable with 74LS157
MD4-MD11 : Connected in 3M "voice1" or 3L "voice2" D0-D7
MA0-MA18 : Connected in Address bus of ROMs
MA19 : Connected in 74LS157 Select Pin
MA20 : Connected in 74LS157 Strobe(Enable) Pin
MA21 : ROM select in MD4-MD11 area
Verified from schematics:
MD0-MD3 : Connected in 3N "voice0" D0-D3 or D4-D7, Nibble changeable with 74LS157
MD4-MD11 : Connected in 3M "voice1" or 3L "voice2" D0-D7
MA0-MA18 : Connected in Address bus of ROMs
MA19 : Connected in 74LS157 Select Pin
MA20 : Connected in 74LS157 Strobe(Enable) Pin
MA21 : ROM select in MD4-MD11 area
*/
if (m_c140_region != nullptr)
{

View File

@ -143,12 +143,12 @@ void bbc_state::video_ula_w(offs_t offset, uint8_t data)
{
case 0:
/* Video ULA control register
b7 Master cursor size
b6-b5 Width of cursor in bytes
b4 6845 clock rate select
b3-b2 Number of characters per line
b1 Teletext/Normal select
b0 Flash colour select
b7 Master cursor size
b6-b5 Width of cursor in bytes
b4 6845 clock rate select
b3-b2 Number of characters per line
b1 Teletext/Normal select
b0 Flash colour select
*/
/* flash colour select has changed */

View File

@ -2,12 +2,12 @@
// copyright-holders:Angelo Salese
/***************************************************************************
Atari Jaguar "Blitter" device
Atari Jaguar "Blitter" device
TODO:
TODO:
- Stub device, port/rewrite from jagblit;
- actual codename/chip part number;
- has different revs, encapsulate;
- actual codename/chip part number;
- has different revs, encapsulate;
***************************************************************************/
@ -102,7 +102,7 @@ const jag_blitter_device::op_func jag_blitter_device::upda_ops[8] =
&jag_blitter_device::op_unemulated, // upda2
&jag_blitter_device::op_unemulated, // upda1f + upda2
&jag_blitter_device::op_unemulated, // upda1 + upda2
&jag_blitter_device::op_unemulated // upda1 + upda1f + upda2
&jag_blitter_device::op_unemulated // upda1 + upda1f + upda2
};
void jag_blitter_device::op_nop()

View File

@ -2,7 +2,7 @@
// copyright-holders:Angelo Salese
/***************************************************************************
Atari Jaguar "Blitter" device
Atari Jaguar "Blitter" device
***************************************************************************/
@ -26,7 +26,7 @@
// ======================> jag_blitter_device
class jag_blitter_device : public device_t,
public device_memory_interface
public device_memory_interface
{
public:
// construction/destruction
@ -46,7 +46,7 @@ protected:
const address_space_config m_space_config;
// address_space *m_host_space;
// address_space *m_host_space;
private:
void regs_map(address_map &map);

View File

@ -4,11 +4,11 @@
Atari Jaguar hardware
TODO (list of exceptions):
jaguar_state::generic_blitter()
- atarikrt, bretth, brutalsp, nbajamte, spacewar, spacewarp, tempst2k
jaguar_state::blitter_09800009_000020_000020()
- ruinerp
TODO (list of exceptions):
jaguar_state::generic_blitter()
- atarikrt, bretth, brutalsp, nbajamte, spacewar, spacewarp, tempst2k
jaguar_state::blitter_09800009_000020_000020()
- ruinerp
****************************************************************************

View File

@ -3,59 +3,59 @@
/*
Konami 037122
This chip has CLUT, CRTC, Variable size single tilemap
This chip has CLUT, CRTC, Variable size single tilemap
Color lookup table is 16 bit BRG format, total 8192 entries (256 color per each tile * 32 banks))
Color lookup table is 16 bit BRG format, total 8192 entries (256 color per each tile * 32 banks))
Color format (4 byte (1x32bit word) per each color)
Bits Description
fedcba9876543210 fedcba9876543210
---------------- xxxxx----------- Blue
---------------- -----xxxxx------ Red
---------------- ----------xxxxxx Green
Color format (4 byte (1x32bit word) per each color)
Bits Description
fedcba9876543210 fedcba9876543210
---------------- xxxxx----------- Blue
---------------- -----xxxxx------ Red
---------------- ----------xxxxxx Green
Tilemap is can be rotated, zoomed, similar as K053936 "simple mode"
Tilemap size is 256x64 (2048x512 pixels) or 128x64 (1024x512 pixels), Each tile is 8bpp 8x8.
Tilemap is can be rotated, zoomed, similar as K053936 "simple mode"
Tilemap size is 256x64 (2048x512 pixels) or 128x64 (1024x512 pixels), Each tile is 8bpp 8x8.
Tile format (4 byte (1x32bit word) per each tile)
Bits Description
fedcba9876543210 fedcba9876543210
--------x------- ---------------- Flip Y
---------x------ ---------------- Flip X
----------xxxxx- ---------------- CLUT Bank index (256 color granularity)
---------------- --xxxxxxxxxxxxxx Tile code (from character RAM, 8x8 pixel granularity (128 byte))
Tile format (4 byte (1x32bit word) per each tile)
Bits Description
fedcba9876543210 fedcba9876543210
--------x------- ---------------- Flip Y
---------x------ ---------------- Flip X
----------xxxxx- ---------------- CLUT Bank index (256 color granularity)
---------------- --xxxxxxxxxxxxxx Tile code (from character RAM, 8x8 pixel granularity (128 byte))
Other bits unknown
Other bits unknown
Register map
00-0f Display timing
20-2f Scroll/ROZ register
30-3f Control, etc
Register map
00-0f Display timing
20-2f Scroll/ROZ register
30-3f Control, etc
Offset Bits Description
fedcba9876543210 fedcba9876543210
00 xxxxxxxxxxxxxxxx ---------------- Horizontal total pixels - 1
---------------- xxxxxxxxxxxxxxxx Horizontal sync width - 1
04 xxxxxxxxxxxxxxxx ---------------- Horizontal front porch - 5
---------------- xxxxxxxxxxxxxxxx Horizontal back porch + 5
08 xxxxxxxxxxxxxxxx ---------------- Vertical total pixels - 1
---------------- xxxxxxxxxxxxxxxx Vertical sync width - 1
0c xxxxxxxxxxxxxxxx ---------------- Vertical front porch + 1
---------------- xxxxxxxxxxxxxxxx Vertical back porch - 2
20 sxxxxxxxxxxxxxxx ---------------- X counter starting value (12.4 fixed point)
---------------- sxxxxxxxxxxxxxxx Y counter starting value (12.4 fixed point)
24 ---------------- sxxxxxxxxxxxxxxx amount to add to the Y counter after each line (4.12 fixed point)
28 sxxxxxxxxxxxxxxx ---------------- amount to add to the X counter after each horizontal pixel (4.12 fixed point)
30 ---------------x ---------------- VRAM mapping mode
---------------0 ---------------- CLUT at 0x00000-0x08000, Display tilemap area at 0x08000-0x18000 (256x64)
---------------1 ---------------- CLUT at 0x18000-0x20000, Display tilemap area at 0x00000-0x08000 (128x64)
---------------- -------------xxx Character RAM bank
Offset Bits Description
fedcba9876543210 fedcba9876543210
00 xxxxxxxxxxxxxxxx ---------------- Horizontal total pixels - 1
---------------- xxxxxxxxxxxxxxxx Horizontal sync width - 1
04 xxxxxxxxxxxxxxxx ---------------- Horizontal front porch - 5
---------------- xxxxxxxxxxxxxxxx Horizontal back porch + 5
08 xxxxxxxxxxxxxxxx ---------------- Vertical total pixels - 1
---------------- xxxxxxxxxxxxxxxx Vertical sync width - 1
0c xxxxxxxxxxxxxxxx ---------------- Vertical front porch + 1
---------------- xxxxxxxxxxxxxxxx Vertical back porch - 2
20 sxxxxxxxxxxxxxxx ---------------- X counter starting value (12.4 fixed point)
---------------- sxxxxxxxxxxxxxxx Y counter starting value (12.4 fixed point)
24 ---------------- sxxxxxxxxxxxxxxx amount to add to the Y counter after each line (4.12 fixed point)
28 sxxxxxxxxxxxxxxx ---------------- amount to add to the X counter after each horizontal pixel (4.12 fixed point)
30 ---------------x ---------------- VRAM mapping mode
---------------0 ---------------- CLUT at 0x00000-0x08000, Display tilemap area at 0x08000-0x18000 (256x64)
---------------1 ---------------- CLUT at 0x18000-0x20000, Display tilemap area at 0x00000-0x08000 (128x64)
---------------- -------------xxx Character RAM bank
Other bits/registers unknown, some registers are used
Other bits/registers unknown, some registers are used
TODO:
- verify and implement scroll, ROZ, display timing registers
- verify other unknown but used registers
- verify and implement scroll, ROZ, display timing registers
- verify other unknown but used registers
*/
#include "emu.h"

View File

@ -330,18 +330,18 @@ uint32_t redalert_state::screen_update_redalert(screen_device &screen, bitmap_rg
*************************************/
/*
[0]
xxxx xxxx X position
[0]
xxxx xxxx X position
[1]
-??x ---- tile bank * 0x20 (?)
---- xx-- <used, unknown purpose>
---- --x- (1) 8x8 tile width 4, (0) 4x4
---- ---x enable layer
[2]
---- x--- boss second form, <unknown purpose>
---- --xx tile bank * 0x100 (?)
[3]
---- --xx <3 on normal/first form boss, 1 on second form>
-??x ---- tile bank * 0x20 (?)
---- xx-- <used, unknown purpose>
---- --x- (1) 8x8 tile width 4, (0) 4x4
---- ---x enable layer
[2]
---- x--- boss second form, <unknown purpose>
---- --xx tile bank * 0x100 (?)
[3]
---- --xx <3 on normal/first form boss, 1 on second form>
*/
void redalert_state::demoneye_bitmap_layer_w(offs_t offset, uint8_t data)
{

View File

@ -75,14 +75,14 @@
The low bits of the pens from a "shadowing" tile (regardless of color code)
substitute the top bits of the color index (0-7fff) in the frame buffer.
Note:
Note:
Based on raster effect usage in Guardians it would appear this list is
transformed into an alt format by the hardware. It is unknown if this
alt format is visible to the CPU for reading, or only writing the updated
scroll positions. We could do with attempting a RAM capture to see what
this format really looks like if it is CPU visible as the current
implementation of this copy / reformat operation is pure guesswork
Based on raster effect usage in Guardians it would appear this list is
transformed into an alt format by the hardware. It is unknown if this
alt format is visible to the CPU for reading, or only writing the updated
scroll positions. We could do with attempting a RAM capture to see what
this format really looks like if it is CPU visible as the current
implementation of this copy / reformat operation is pure guesswork
***************************************************************************/
@ -473,7 +473,7 @@ int seta2_state::calculate_global_xoffset(int nozoom_fixedpalette_fixedposition)
/*
int global_xoffset = (m_vregs[0x12/2] & 0x7ff); // and 0x10/2 for low bits
if (global_xoffset & 0x400)
global_xoffset -= 0x800;
global_xoffset -= 0x800;
// funcube3 sets a global xoffset of -1 causing a single pixel shift, does something else compensate for it?
// note, it also writes a different address for the sprite buffering (related?) but doesn't also have the global zoom set to negative like Star Audition which also writes there.
@ -484,7 +484,7 @@ int seta2_state::calculate_global_xoffset(int nozoom_fixedpalette_fixedposition)
// TODO: properly render negative zoom sprites
if (global_xzoom & 0x400)
{
global_xoffset -= 0x14f;
global_xoffset -= 0x14f;
}
*/
@ -501,7 +501,7 @@ int seta2_state::calculate_global_yoffset(int nozoom_fixedpalette_fixedposition)
// Sprites list
//int global_yoffset = (m_vregs[0x1a / 2] & 0x7ff); // and 0x18/2 for low bits
//if (global_yoffset & 0x400)
// global_yoffset -= 0x800;
// global_yoffset -= 0x800;
//global_yoffset += 1; // +2 for myangel / myangel2?
int global_yoffset = 0;
@ -691,7 +691,7 @@ void seta2_state::draw_sprites_line(bitmap_ind16 &bitmap, const rectangle &clipr
if (realscanline == 128)
{
// printf("%04x %02x %d %d\n", sprite_debug_count, num, yoffs, sy);
// printf("%04x %02x %d %d\n", sprite_debug_count, num, yoffs, sy);
}
int sizey = use_global_size ? global_sizey : s2[1] & 0xfc00;
@ -852,7 +852,7 @@ void seta2_state::draw_sprites(bitmap_ind16& bitmap, const rectangle& cliprect)
yy &= 0x07ffffff;
yy >>= 16;
// printf("line %04x yline requested %04x\n", y, yy);
// printf("line %04x yline requested %04x\n", y, yy);
if (yy & 0x400)
yy -= 0x800;

View File

@ -652,29 +652,29 @@ void vt100_video_device::display_char(bitmap_ind16 &bitmap, uint8_t code, int x,
{
if (double_width)
{
if (bitmap.pix16(y_preset, DOUBLE_x_preset + b) == fg_intensity)
{
prev_bit = fg_intensity;
}
else
{
if (prev_bit == fg_intensity)
if (bitmap.pix16(y_preset, DOUBLE_x_preset + b) == fg_intensity)
{
prev_bit = fg_intensity;
}
else
{
if (prev_bit == fg_intensity)
bitmap.pix16(y_preset, DOUBLE_x_preset + b) = fg_intensity;
prev_bit = back_intensity;
}
prev_bit = back_intensity;
}
}
else
{
if (bitmap.pix16(y_preset, x_preset + b) == fg_intensity)
{
prev_bit = fg_intensity;
}
else
{
if (prev_bit == fg_intensity)
if (bitmap.pix16(y_preset, x_preset + b) == fg_intensity)
{
prev_bit = fg_intensity;
}
else
{
if (prev_bit == fg_intensity)
bitmap.pix16(y_preset, x_preset + b) = fg_intensity;
prev_bit = back_intensity;
}
prev_bit = back_intensity;
}
}
}
} // for (scan_line)

View File

@ -1028,7 +1028,7 @@ int xx1,yy1,xx2,yy2;
}
for (int y=yy1;y <= yy2;y++) {
*(bmp+y*width+xx1) = color;
}
}
} else if (yy1 == yy2) {
if (xx1 > xx2) {
int t=xx1;
@ -1957,8 +1957,8 @@ void nv2a_renderer::write_pixel(int x, int y, uint32_t color, int z)
w = (ft & ~color_mask) | (ct & color_mask);
/* for debugging
if (w == 0x94737d7b)
x++;
if (w == 0x94737d7b)
x++;
*/
switch (colorformat_rendertarget) {
case NV2A_COLOR_FORMAT::R5G6B5:
@ -3501,8 +3501,8 @@ int nv2a_renderer::execute_method_3d(address_space& space, uint32_t chanel, uint
compute_limits_rendertarget(chanel, subchannel);
compute_size_rendertarget(chanel, subchannel);
/* for debugging
if (limits_rendertarget.max_x == 1023)
type_rendertarget = NV2A_RT_TYPE::LINEAR;
if (limits_rendertarget.max_x == 1023)
type_rendertarget = NV2A_RT_TYPE::LINEAR;
*/
switch (colorformat_rendertarget) {
case NV2A_COLOR_FORMAT::R5G6B5:

View File

@ -6,7 +6,7 @@
Dragon DOS disk images
I am not happy with the sector allocation algorithm
I am not happy with the sector allocation algorithm
****************************************************************************/
@ -68,7 +68,7 @@ struct dgndos_direnum
#define HEADER_EXTENTS_COUNT 4
#define CONT_EXTENTS_COUNT 7
#define DGNDOS_DELETED_BIT 0x80 // deleted entry
#define DGNDOS_DELETED_BIT 0x80 // deleted entry
#define DGNDOS_CONTINUED_BIT 0x20 // byte at offset 0x18 give next entry number
#define DGNDOS_END_BIT 0x08 // end of directory
#define DGNDOS_PROTECT_BIT 0x02 // ignored
@ -149,13 +149,13 @@ static imgtoolerr_t dgndos_get_geometry(uint8_t *entire_track, int *bitmap_count
if( (~tod & 0xff) != entire_track[0xfe])
{
// fprintf( stderr, "tracks_on_disk check failed: %u == %u\n", (~tod & 0xff), entire_track[0xfe] );
// fprintf( stderr, "tracks_on_disk check failed: %u == %u\n", (~tod & 0xff), entire_track[0xfe] );
return IMGTOOLERR_CORRUPTIMAGE;
}
if( (~spt & 0xff) != entire_track[0xff])
{
// fprintf( stderr, "sectors_per_track check failed: %u == %u\n", (~spt & 0xff), entire_track[0xff] );
// fprintf( stderr, "sectors_per_track check failed: %u == %u\n", (~spt & 0xff), entire_track[0xff] );
return IMGTOOLERR_CORRUPTIMAGE;
}
@ -169,7 +169,7 @@ static imgtoolerr_t dgndos_get_geometry(uint8_t *entire_track, int *bitmap_count
}
else
{
// fprintf( stderr, "sides check failed\n" );
// fprintf( stderr, "sides check failed\n" );
return IMGTOOLERR_CORRUPTIMAGE;
}
@ -518,8 +518,8 @@ static imgtoolerr_t dgndos_diskimage_nextenum(imgtool::directory &enumeration, i
}
else
{
err = dgndos_get_file_size(entire_track20, dgnent, filesize);
if (err) return err;
err = dgndos_get_file_size(entire_track20, dgnent, filesize);
if (err) return err;
if (filesize == ((size_t) -1))
{
@ -906,7 +906,7 @@ static imgtoolerr_t dgndos_diskimage_writefile(imgtool::partition &partition, co
int de_count = 0;
int de_dont_delete = position;
int lsn, count;
int save_next_de;
int save_next_de;
save_next_de = ent.dngdos_last_or_next;
ent.dngdos_last_or_next = last_sector_size;

View File

@ -6184,7 +6184,7 @@ static void config_gal20v8_pins(const pal_data* pal, const jed_data* jed)
input_pins_combinatorialsimple[input_pin_count] = macrocells[index].pin;
++input_pin_count;
}
}
else
{
output_pins[output_pin_count].flags |= OUTPUT_FEEDBACK_NONE;