abc800c, abc800m: Fixed HR graphics. [Curt Coder]

This commit is contained in:
Curt Coder 2020-04-15 21:24:58 +03:00
parent 24fe3eb644
commit cfcb2417b6
3 changed files with 8 additions and 9 deletions

View File

@ -189,8 +189,8 @@ license:CC0
<info name="serial" value="68 20018-41" /> <info name="serial" value="68 20018-41" />
<part name="flop" interface="floppy_5_25"> <part name="flop" interface="floppy_5_25">
<dataarea name="flop" size="85140"> <dataarea name="flop" size="163840">
<rom name="demo11.td0" size="85140" crc="77fd2490" sha1="ba953cf6496633c449b2b49ad707469a763e1fd3"/> <rom name="demo11.dsk" size="163840" crc="f57d142d" sha1="f9c67904ddc8fa598353dcdcd8c0bc3eb4e91524"/>
</dataarea> </dataarea>
</part> </part>
</software> </software>

View File

@ -193,7 +193,7 @@ READ8_MEMBER( abc800_state::read )
{ {
uint8_t data = 0xff; uint8_t data = 0xff;
if (offset < 0x4000 && !m_keydtr) if (offset < 0x4000 && (!m_keydtr || m_fetch_charram))
{ {
data = m_video_ram[offset]; data = m_video_ram[offset];
} }
@ -219,7 +219,7 @@ READ8_MEMBER( abc800_state::read )
WRITE8_MEMBER( abc800_state::write ) WRITE8_MEMBER( abc800_state::write )
{ {
if (offset < 0x4000 && !m_keydtr) if (offset < 0x4000 && (!m_keydtr || m_fetch_charram))
{ {
m_video_ram[offset] = data; m_video_ram[offset] = data;
} }
@ -1121,7 +1121,7 @@ void abc800c_state::abc800c(machine_config &config)
subdevice<abcbus_slot_device>(ABCBUS_TAG)->set_default_option("abc830"); subdevice<abcbus_slot_device>(ABCBUS_TAG)->set_default_option("abc830");
// internal ram // internal ram
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("32K"); RAM(config, RAM_TAG).set_default_size("32K");
} }
@ -1150,7 +1150,7 @@ void abc800m_state::abc800m(machine_config &config)
subdevice<abcbus_slot_device>(ABCBUS_TAG)->set_default_option("abc830"); subdevice<abcbus_slot_device>(ABCBUS_TAG)->set_default_option("abc830");
// internal ram // internal ram
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("32K"); RAM(config, RAM_TAG).set_default_size("32K");
} }

View File

@ -12,10 +12,9 @@
// these are needed because the MC6845 emulation does // this is needed because the MC6845 emulation does
// not position the active display area correctly // not position the active display area correctly
#define HORIZONTAL_PORCH_HACK 115 #define HORIZONTAL_PORCH_HACK 115
#define VERTICAL_PORCH_HACK 29
@ -188,7 +187,7 @@ void abc800m_state::hr_update(bitmap_rgb32 &bitmap, const rectangle &cliprect)
const pen_t *pen = m_palette->pens(); const pen_t *pen = m_palette->pens();
for (int y = m_hrs + VERTICAL_PORCH_HACK; y < std::min(cliprect.max_y + 1, m_hrs + VERTICAL_PORCH_HACK + 240); y++) for (int y = m_hrs; y < std::min(cliprect.max_y + 1, m_hrs + 240); y++)
{ {
int x = HORIZONTAL_PORCH_HACK; int x = HORIZONTAL_PORCH_HACK;