Skip to content

rm/rm480z.cpp: Added nmi single step debugging support and corrected alternative character set display logic#15197

Open
RobinSergeant wants to merge 2 commits into
mamedev:masterfrom
RobinSergeant:rm480z_enhancements
Open

rm/rm480z.cpp: Added nmi single step debugging support and corrected alternative character set display logic#15197
RobinSergeant wants to merge 2 commits into
mamedev:masterfrom
RobinSergeant:rm480z_enhancements

Conversation

@RobinSergeant
Copy link
Copy Markdown
Contributor

@RobinSergeant RobinSergeant commented Apr 6, 2026

Single step debugging

Basically the same change that I made for the 380Z yesterday, but on the 480Z NMIEN is active high.

The front panel (accessed with <Ctrl>+F) includes a single step debugging command (z) which relies on special hardware to work. When it asserts NMIEN by writing to Port 1 we need to start counting M1 cycles and then trigger a NMI after 8 of those. The NMI service routine will then return to the front panel with PC pointing to the next instruction. With my changes this now works.

Alternative character set display logic

I did not originally appreciate that the alternative character set is actually part of the chargen ROM (starting from offset 0x1000). Hence, we should plot this character data instead of manually inverting the standard set!

The following BASIC program shows that the same characters are produced with the new routine:

Screenshot 2026-04-06 at 19 04 25

NB Changing the escape sequence on line 10 to "=0L" will display the regular character set (teletext characters).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant