Skip to content
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

rm/rm380z.cpp: Split RM480Z out to its own driver with MQ2 floppy drive support #12576

Merged
merged 15 commits into from
Oct 13, 2024

Conversation

RobinSergeant
Copy link
Contributor

This PR adds a new driver to replace the non working 480Z fragments in the 380Z driver. As the hardware is so different I think it really belongs in a separate driver. Everything from the keyboard interface to video RAM access is different and the 480Z is generally much more complex.

I have emulated all the basic features, plus HRG and floppy drives. There are still more things to add in the future (such as cassette support), but I think it's in a good state for release now. Everything I've tested seems to work including the CP/M ram disk on drive M: (which is a good test of the bank switching).

It largely uses the existing ROM files, but I have added a new BIOS version (ROS 1.2D) for completeness.

Some screenshots (welcome disk title screen, Trains game, CP/M boot screen, and ROS/BIR):

Screenshot from 2024-07-14 10-58-37

Screenshot from 2024-07-14 11-00-30

Screenshot from 2024-07-14 10-53-03

Screenshot from 2024-07-14 11-02-53

m_maincpu->set_input_line(INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
m_sio->dcdb_w(state);
// give firmware ~50ms to finish initialisation before allowing first NMI
if (m_maincpu->total_cycles() > 200'000)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On hardware, is there some kind of handshake or something that makes this work, or is it more of a magical timing thing?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems to be a magical timing thing, but I suppose with real hardware it would very unusual to start both CPUs at exactly the same time - there would naturally be at least a few seconds gap between pressing one power switch and then the other!

@RobinSergeant
Copy link
Contributor Author

Conflicts with recent ATTR_COLD changes resolved! Could somebody please merge this pull request if there are no further comments? I've tested the driver extensively and have even ported CP/M Plus to the 480Z using it (see https://github.com/RobinSergeant/cpmplus480z) :-)

As there are no other 480Z emulators out there I think it would be nice to get this into MAME so that more people can use the machine.

@rb6502 rb6502 changed the title Add new RM 480Z driver with MQ2 floppy drive rm/rm380z.cpp: Split RM480Z out to its own driver with MQ2 floppy drive support Oct 13, 2024
@rb6502 rb6502 merged commit c6b72ab into mamedev:master Oct 13, 2024
5 checks passed
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.

2 participants