- --
Viewing Issue Advanced Details
ID | Category [?] | Severity [?] | Reproducibility | Date Submitted | Last Update |
---|---|---|---|---|---|
08916 | Core | Minor | Always | Sep 11, 2024, 23:53 | Sep 13, 2024, 04:57 |
Tester | pgimeno | View Status | Public | Platform | |
Assigned To | Resolution | Open | OS | ||
Status [?] | Confirmed | Driver | |||
Version | 0.251 | Fixed in Version | Build | ||
Fixed in Git Commit | Github Pull Request # | ||||
Summary | 08916: jupace: Incorrect Z80 data bus value during interrupt | ||||
Description |
It seems that the bus value during an interrupt servicing in the jupace driver is fixed to 255. This is incorrect; the real machine's hardware actually derives the value from both text RAM and character set RAM in a nontrivial way, associated with the video hardware. I've posted the details of the correct behaviour here: https://retrocomputing.stackexchange.com/questions/20350/what-would-be-the-value-on-the-data-bus-for-a-jupiter-ace-with-the-z80-interrupt#30578 This affects the game Valkyr in particular (marked as Not Working as of this writing); possibly more. This game assumes that the data bus value during an interrupt is 20h, which is not necessarily true in general but it is true if the machine was just booted and just a LOAD command was entered. |
||||
Steps To Reproduce |
- Configure the machine with at least 16K extra RAM. - Load and try to play Valkyr (m_valkyr.zip). - Observe that the machine resets or otherwise fails to work. - Optionally, modify the driver to always return 32 instead of 255 as the bus value during interrupt servicing and try again; check that the game loads an runs. |
||||
Additional Information |
The value for an unused I/O port (e.g. port 255) is also derived from text RAM / character set RAM in the same way; the same fix could also provide accurate values for unused ports. I'm not aware of any program that expects a correct value though, but it would be nice to have it in the interest of accuracy. I've written a test ROM that allows verifying whether the IM2 behaviour is correct in normal situations (it's not very thorough though). https://codeberg.org/pgimeno/jupace-testrom |
||||
Github Commit | |||||
Flags | Verified with Original, Verified with Code | ||||
Regression Version | |||||
Affected Sets / Systems | jupace | ||||
Attached Files
|
|||||
Relationships
There are no relationship linked to this issue. |
Notes
0
There are no notes attached to this issue. |