-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
z80dma.cpp: add derivateves ZILOG, UA858D, SPEC_NEXT #12658
base: master
Are you sure you want to change the base?
Conversation
sinclair/spec128.cpp: configuration option for DMA extension
Is there a good way to avoid wedging SpecNext configuration into the base Z80DMA device? (Perhaps UA858D might also be worth supporting as its own type for East German systems such as |
I was thinking about it too. The problem is that both zx mod and next itself allows switch between two modes. |
Consider using a virtual sub function that gets overridden in the subclasses? |
src/devices/machine/z80dma.cpp
Outdated
void z80dma_device::do_write() | ||
{ | ||
if (m_byte_counter && m_dma_mode == dma_mode::SPEC_NEXT) | ||
{ | ||
m_addressB += PORTB_FIXED ? 0 : PORTB_INC ? 1 : -1; | ||
} | ||
|
||
switch(TRANSFER_MODE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm confused: why it needs a pre-increment before the transfer occurs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You need to look at this in combination with block below. Next mode initialized with exact N transfers value, not N+1 as original z80dma
Not sure it's clear for me. E.g. for Next we have one dma which operates in both modes depending on the port. That means we can init dma in Z80 mode but start in N. |
Yes, and moving this logic from |
I can revert specnext_dma files. |
@ajrhacker @angelosa Better? |
ping |
z80dma.cpp: add derivateves ZILOG, UA858D, SPEC_NEXT
sinclair/spec128.cpp: configuration option for DMA extension
details: https://velesoft.speccy.cz/data-gear.htm