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
ProDOS8 2.5.0 alpha6 not working #700
Comments
Hi Nick (@sicklittlemonkey ) you are going to love this one...
There is this code to enable LC write:
And on this Twitter post here, you and John discussed this false read behaviour for RMW and RMW,X! We did discuss supporting false-reads (for 6502) in #404, but decide not to do this, as (at the time) nothing was exploiting this behaviour... well now it is. |
Ha, nice. Targeting the real hardware is fair game!
|
I got this clarification from John...
|
So by extension that means all other common (ie. exist for all 6502/65C02/618) RMW opcodes will behave the same: ASL, DEC, LSR, ROL, ROR. Also TSB/TRB on 65c02 & 65802/65816. |
A filthy fix(!), but it's localised to just the LC code, so emulation speed won't be affected. Whereas a more generalised fix in the 6502 emulation code would cost in speed, and mean a much greater engineering effort to implement & test. |
NB. An Apple II/II+ with a Saturn card (in slot-0) already works without any change, because the pre-write mode isn't predicated with a read-access (ie. it can be set on a write too). |
I'm not 100% convince by the 6502 version of INC <abs>.
Sather (UTAIIe 4-23) says
NB. the 65C02 version (UTAIIe 4-27) is fine as it does:
On UTAIIe 4-25, Sather describes I will test on a 6502... |
OK, I tested on my real hardware: an unenhanced //e 6502 (not 65C02), and this fails with a BRK:
So (unless my code is wrong) |
Testing ProDOS_2_5_a6_143k.po on my real unenhanced //e 6502, I consistently get this hang:
NB. I also get the same ERR=4 with ProDOS_2_5_a4_143k.po. |
John (and various people on Slack) confirmed INC $C08B doesn't write-enable the LC for 6502 machines. He's now looking at INC $C08B,X (X=0), which is #404. |
It's 5 years since I looked at this stuff (for that old c.s.a2 thread), and
there are still nooks unexplored till now!
Looks like INC $C083,X is a winner, but I wonder if he can still win in
bytes if X has to be 0. That's sometimes painful.
Cheers,
Nick.
|
Closing as 1.29.3 is released here. |
NB. The P8-2.5.0-alpha6 & AppleWin status is:
I'm expecting John to release a new P8-2.5.0 that fixes the issue with the 6502-based machines. |
John Brooks gave me a heads up about this issue:
The text was updated successfully, but these errors were encountered: