bus/nubus/nubus_specpdq.cpp: Added comment about issue with Apple RGB monitor.

Also tidied up a few things.
This commit is contained in:
Vas Crabb 2024-08-29 02:39:11 +10:00
parent f37e830fc2
commit 10ec939ff3
5 changed files with 35 additions and 28 deletions

View File

@ -137,7 +137,7 @@ void a2bus_wicotrackball_device::device_reset()
uint8_t a2bus_wicotrackball_device::read_position(int axis)
{
int const speed_scale = 1 << (m_speed[0] + m_speed[1] * 2);
int const cur_pos = m_wicotrackballxy[axis]->read();
int const cur_pos = m_wicotrackballxy[axis]->read();
uint8_t result = 0;
if (m_last_pos[axis] != WICOTRACKBALL_POS_UNINIT) {
@ -195,7 +195,7 @@ uint8_t a2bus_wicotrackball_device::read_c0nx(uint8_t offset)
case 0x6: /* read buttons */
data = m_buttons = m_wicotrackballb->read();
break;
}
}
return data;
}
@ -232,7 +232,7 @@ void a2bus_wicotrackball_device::write_c0nx(uint8_t offset, uint8_t data)
case 0x7: /* set Speed 3/4 Soft Switch to Speed 4 */
m_speed[1] = true;
break;
}
}
}
} // anonymous namespace

View File

@ -327,11 +327,15 @@ void nubus_specpdq_device::update_crtc()
// for some reason you temporarily get invalid screen parameters - ignore them
if (m_crtc.valid(*this))
{
rectangle active(
m_crtc.h_start(16) + (m_hdelay * 4),
m_crtc.h_end(16) - (m_hadjust - (m_hdelay * 4)) - 1,
m_crtc.v_start(),
m_crtc.v_end() - 1);
// FIXME: there's still something missing in the active width calculation
// With the Apple RGB (640*480) monitor selected, the active width is 16 pixels
// too wide in black and white mode, and 16 pixels too narrow in greyscale or
// colour modes.
rectangle const active(
m_crtc.h_start(16) + (m_hdelay * 4),
m_crtc.h_end(16) + (m_hdelay * 4) - m_hadjust - 1,
m_crtc.v_start(),
m_crtc.v_end() - 1);
screen().configure(
m_crtc.h_total(16),

View File

@ -185,7 +185,7 @@ void hp98x6_base_state::machine_start()
space->install_ram(0x1000000 - m_ram->size(), 0xffffff, m_ram->pointer());
for (auto& finder : m_rom_drawers) {
for (auto &finder : m_rom_drawers) {
finder->install_handlers(space);
}
}
@ -241,7 +241,7 @@ void hp98x6_base_state::hp98x6_base(machine_config &config, unsigned dot_clock,
IEEE488_SLOT(config, "ieee_rem", 0, remote488_devices, nullptr);
// Optional ROM slots
for (auto& finder : m_rom_drawers) {
for (auto &finder : m_rom_drawers) {
HP98X6_OPTROM(config, finder);
}
@ -2069,8 +2069,8 @@ ROM_END
} // anonymous namespace
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP(1982, hp9816a, 0, 0, hp9816, hp9816, hp9816_state,empty_init, "Hewlett-Packard", "HP 9816A", 0)
COMP(1981, hp9826a, 0, 0, hp9826, hp9826_36,hp9826_state,empty_init,"Hewlett-Packard","HP 9826A", 0)
COMP(1981, hp9836a, 0, 0, hp9836, hp9836, hp9836_state,empty_init, "Hewlett-Packard", "HP 9836A", 0)
COMP(1983, hp9836c, 0, 0, hp9836c,hp9836, hp9836c_state,empty_init,"Hewlett-Packard", "HP 9836C", 0)
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP(1982, hp9816a, 0, 0, hp9816, hp9816, hp9816_state,empty_init, "Hewlett-Packard", "HP 9816A", 0)
COMP(1981, hp9826a, 0, 0, hp9826, hp9826_36,hp9826_state,empty_init, "Hewlett-Packard", "HP 9826A", 0)
COMP(1981, hp9836a, 0, 0, hp9836, hp9836, hp9836_state,empty_init, "Hewlett-Packard", "HP 9836A", 0)
COMP(1983, hp9836c, 0, 0, hp9836c,hp9836, hp9836c_state,empty_init,"Hewlett-Packard", "HP 9836C", 0)

View File

@ -16,18 +16,21 @@
#define VERBOSE 0
#include "logmacro.h"
DEFINE_DEVICE_TYPE(HP98X6_OPTROM, hp98x6_optrom_device, "hp98x6_optrom", "HP98x6 optional ROM")
namespace {
struct optrom_region {
offs_t m_start;
const char *m_tag;
};
constexpr std::array<struct optrom_region , 2> region_tab =
{{
{ 0x100000, "rom100000" },
{ 0x80000, "rom80000" }
}};
constexpr std::array<struct optrom_region , 2> region_tab = {{
{ 0x100000, "rom100000" },
{ 0x080000, "rom80000" }
}};
} // anonymous namespace
DEFINE_DEVICE_TYPE(HP98X6_OPTROM, hp98x6_optrom_device, "hp98x6_optrom", "HP98x6 optional ROM")
// +--------------------+
// |hp98x6_optrom_device|
@ -52,7 +55,7 @@ void hp98x6_optrom_device::install_handlers(address_space *space_r)
{
m_space_r = space_r;
for (const struct optrom_region& reg : region_tab) {
for (const struct optrom_region &reg : region_tab) {
uint8_t *ptr = get_software_region(reg.m_tag);
if (ptr != nullptr) {
auto len = get_software_region_length(reg.m_tag);
@ -80,7 +83,7 @@ void hp98x6_optrom_device::call_unload()
{
LOG("hp98x6_optrom: call_unload\n");
if (m_space_r != nullptr) {
for (const struct optrom_region& reg : region_tab) {
for (const struct optrom_region &reg : region_tab) {
auto len = get_software_region_length(reg.m_tag);
if (len != 0) {
m_space_r->unmap_read(reg.m_start , reg.m_start + len - 1);

View File

@ -516,11 +516,11 @@ void k052109_device::tilemap_update( )
#if 0
popmessage("%x %x %x %x",
m_charrombank[0],
m_charrombank[1],
m_charrombank[2],
m_charrombank[3]);
// popmessage("%x",m_addrmap);
m_charrombank[0],
m_charrombank[1],
m_charrombank[2],
m_charrombank[3]);
//popmessage("%x",m_addrmap);
#endif
// note: this chip can do both per-column and per-row scroll in the same time, currently not emulated.