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

heathkit/h89.cpp: Add SigmaSoft Interactive Graphics Controller #11801

Merged
merged 17 commits into from Feb 17, 2024

Conversation

mgarlanger
Copy link
Contributor

@mgarlanger mgarlanger commented Nov 30, 2023

Adds the SigmaSoft and Systems Interactive Graphics Controller (IGC) device for the H89 computer.
Unlike the other graphics upgrades for the Heath H19 which had all the changes/connections in the H19 (or the terminal portion of the H89), this board connected to the H89's CPU board and it's the CPU board's Z80 which drives the graphics board. Note: the IGC could also work with Heath H8 and H19, but in that configuration, the H8's CPU would still be controlling the IGC, not the TLB.

I'm not sure this is the best way to structure the code. This IGC can be used with some of the alternate ROMs on the TLB board, such as Super19, UltraROM, and Watzman, in addition to the original Heath ROM. If there is a clean way to allow any of these ROM with the IGC, that would be preferred to this approach.

Screenshot 2023-11-29 at 10 03 03 AM Screenshot 2023-11-29 at 7 00 29 PM

{
}

void sigmasoft_parallel_port::video_mem_w(u8 val)
Copy link
Contributor

Choose a reason for hiding this comment

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

Are these trampolines necessary?

#define LOGREG(...) LOGMASKED(LOG_REG, __VA_ARGS__)
#define LOGFUNC(...) LOGMASKED(LOG_FUNC, __VA_ARGS__)

#ifdef _MSC_VER
Copy link
Contributor

Choose a reason for hiding this comment

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

This seems like something the core should provide in some way.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I saw this done like this in several other files, I guess it could go in logmacro.h, but that would probably require a large number of files to be changed.

@@ -598,6 +598,9 @@ static void tlb_options(device_slot_interface &device)
static void sigma_tlb_options(device_slot_interface &device)
{
device.option_add("igc", HEATH_IGC);
device.option_add("igc_super19", HEATH_IGC_SUPER19);
Copy link
Contributor

Choose a reason for hiding this comment

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

If the only difference here is the ROM, this should just use BIOS options. (Yes, slot devices can have BIOS options - for an extreme example, look at bus/isa/xtide.cpp, which has 24+ ROMs selectable).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There are some additional difference that make that hard. The other ROMs all change the definitions of what the dip switch settings mean. The UltraROM has an addition 2k of RAM for off-screen memory. And both the UltraROM and Watzman ROM had different keyboard rom than the original. There are 2 versions of the Watzman ROM, and they are currently using BIOS options.

@mgarlanger
Copy link
Contributor Author

@cuavas This PR has been updated to use a similar approach as PR 11898 based on the feedback you provided there.

@rb6502 rb6502 merged commit ae6efd3 into mamedev:master Feb 17, 2024
5 checks passed
Mokona pushed a commit to Mokona/mame that referenced this pull request Feb 28, 2024
…dev#11801)

* Add slot devices for the IGC with compatible ROMs
* Add Ultimeth 2k ROM as an option for Sigmasoft clone
stonedDiscord pushed a commit to stonedDiscord/mame that referenced this pull request Apr 8, 2024
…dev#11801)

* Add slot devices for the IGC with compatible ROMs
* Add Ultimeth 2k ROM as an option for Sigmasoft clone
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.

None yet

2 participants