Posted By
Litwr on 2012-07-31 06:12:59
| The emulators crasher — LXA
I've just tested Vice, Yape, Plus4emu, 'Plus4forever?'. The tests show that all these emulators use LXA (OAL, ATX) algorithm as described at http://www.ffd2.com/fridge/docs/6502-NMOS.extra.opcodes
The tests at real C16 shows that this algorithm is wrong.
The newer documents show other algorithm which corresponds to my c16 behaviours. See http://members.chello.nl/taf.offenga/illopc31.txt http://go.pkgdoc.org/github.com/samuel/go-emu/cpu6502 http://anyplatform.net/media/guides/cpus/65xx%20Processor%20Data.txt http://www.atariage.com/forums/topic/124320-illegal-opcodes/
The visual 6502 at http://www.visual6502.org/JSSim/expert.html?a=0&d=a900abffea also shows my c16 results.
Please help to discover truth! Enter the next lines in the monitor of c16 or c116 or c+4 >2000 a9 00 ab ff 00 G2000
My c16 and visual6502 show AC=XR=0 but all emulators show AC=XR=EE.
It is also interesting to test c64 iron. Does anybody know c64 forum where I may ask for the same tests?
|
|
Posted By
MIK on 2012-07-31 12:39:15
| Re: The emulators crasher — LXA
This is way over my head lol.
But for peace of mind here is Yape 1.0.3 next to a real Commodore C16. I have one setup 24/7 next to my PC haha!
piccy: http://i46.tinypic.com/2vkncs5.jpg
Does that help?
Only site I know off would be Lemon64 although, Sixteen Plus has a C64 and a couple of reset carts and might be able to help?
|
|
Posted By
Hans on 2012-07-31 13:01:36
| Re: The emulators crasher — LXA
Hi Vladimir,
on my Plus/4:
AC = 00 XR = F7
For a test on a real C64, you could try the (really active) German C64 forum:
http://www.forum64.de/wbb3/index.php?page=Index
You probably will have to register before posting in their forum. The forum is in German language but machine language coders are bound to understand and to reply English...
Regards, Hans.
|
|
Posted By
Gaia on 2012-07-31 14:16:05
| Re: The emulators crasher — LXA
This is interesting...! Actually I have just fixed an illegal opcode in Yape 1.0.3 that was partially incorrectly implemented (based on the "old" docs). I have both C16's and plus/4's as well as C64's that I can test. I seem to recall some defenders rely on the LAX/LXA opcode actually.
EDIT: haven't you mixed up the opcode mnemonic? LXA is something else. Aren't we alking about good old ANE/XAA?
|
|
Posted By
Litwr on 2012-07-31 15:09:07
| Re: The emulators crasher — LXA
[HANS] Your results are impossible. Try to check them again. [MIK] Wow! Thank you for c64 links. [Gaia] IMHO somebody was very exhausted by the struggle with idea of ANE/XAA $8B and made a error about LXA ($AB) repeated during 15 years! So Yape is still not perfect. ;-( [c64] The test will be a bit more difficult with power of basic only. 10 FORI=0TO4 20 READJ:POKE8192+I,J 30 NEXTI 40 SYS8192 50 PRINT"AC=";PEEK(780) 60 PRINT"XR=";PEEK(781) 70 DATA169,0,171,255,96 The results should match c16/116/+4. If somebody has c64 emulator other than Vice then it will be interesting to test it too.
|
|
Posted By
Hans on 2012-07-31 15:00:30
| Re: The emulators crasher — LXA
Can't get better results than posted before.
You're sure to gave the correct instructions on reading the ML addresses?
|
|
Posted By
Gaia on 2012-07-31 15:03:18
| Re: The emulators crasher — LXA
Sorry, I was away from any kind of reference (halfway to the bathroom with the kids). Anyway, just checked and in Yape I called it "ANX", I got confused by the anagram (LAX vs LXA). I'll check it right away on my plus/4.
|
|
Posted By
MIK on 2012-07-31 15:34:46
| Re: The emulators crasher — LXA
CP4, Amiga Plus4 emulator gives the same result as Yape. Piccy: http://i46.tinypic.com/kb5ezn.jpg
Magic64, Amiga Commodore 64 Emulator - not on par with PC stuff but the result might be a surprise? Piccy: http://i47.tinypic.com/6dvo7a.jpg
Last of all my Plus/4... Piccy: http://i49.tinypic.com/2d8jsbn.jpg
Your have to forgive my real C16 picture as I was using it at the time and rushed it out. Would of like to of had the machine off for a bit longer to wipe the memory clean, I was in a hurry for dinner. My Plus/4 shot is fresh, just switched it on right now.
|
|
Posted By
Gaia on 2012-07-31 15:36:04
| Re: The emulators crasher — LXA
Well, well...
It's not a Yape screen, honest!
|
|
Posted By
Litwr on 2012-07-31 16:05:12
| Re: The emulators crasher — LXA
[Hans] Sorry but your results are really weird. Did you try emulator too? Maybe XR <-> YR? I've just posted a link to our thread to forum64. However this forum is a bit overregulated. It requires gigantic password. It doesn't allow weblink without moderator confirmation. So my message may be ignored. [MIK] Thank you very much. Your hardware and software show the most right results! :-) [Gaia] Did you try C16? I begin to think that LXA problem is for Commodore CPU chips only. The mystery of ANE was solved several years ago but the mystery of LXA may be unsolved forever. :-( We need Visual6510/8501/... to solve it.
|
|
Posted By
MIK on 2012-07-31 16:10:16
| Re: The emulators crasher — LXA
No problem.
|
|
Posted By
Gaia on 2012-07-31 16:16:51
| Re: The emulators crasher — LXA
My C16's are packed away somewhere... I mean I know where, but not their power supply. I'll have a look tomorrow.
Since MIK's plus/4 reported values similar to your C16, I guess it could depend on the CPU stepping ("when" and "how" it was made). Or eventually on the type of RAM...?
|
|
Posted By
MIK on 2012-07-31 16:44:06
| Re: The emulators crasher — LXA
From my own stuff I know there are 2 Commodore 16 mother boards in existent. Revision "A" and Revision "B" printed on the actual mother board.
I think Revision "A" is UK made, and Revision "B" is German. I think... This would be from the UK region of C16's any way.
Of the Plus/4's I have none of the chips are Commodore. They are either made in Taiwan, China, Japan and maybe Germany printed only.
|
|
Posted By
Litwr on 2012-07-31 16:53:49
| Re: The emulators crasher — LXA
My C16 made in England. I wrote about Commodore compatible cpu chips. IMHO all these chips were made by CSG. There were also 6502 of Atari, Apple, BBC Micro, ...
|
|
Posted By
Gaia on 2012-07-31 16:50:28
| Re: The emulators crasher — LXA
Mine was made in England, Serial: EA4 175212. I haven't opened it up for now.
|
|
Posted By
MIK on 2012-07-31 16:58:05
| Re: The emulators crasher — LXA
If it was made in the UK it should have a Revision A or B printed on it on the mother board as you look down at the chips, you can't miss it. Can't help any more than that as I have no idea of the differences.
EDIT: If you look in the hardware section at the, "C16 Board With Unknown 128K Expansion" picture. Just below the TV modulator you can see: ASSY NO. Just below that on the right you can see REV B. So that board is a revision B.
|
|
Posted By
Litwr on 2012-08-01 12:29:07
| Re: The emulators crasher — LXA
It is a small probability that Gaia's c+4 results are caused by its unique specificity. We need more tests to discover the truth. [Hans] The discussion at c64 forum shows that your results where XR is not equal AC is above understanding even for the experienced c64 users. If you are sure with them you definitely should initiate thread about this matter with c64 forum or write a short note to the Club Info.
|
|
Posted By
MIK on 2012-08-01 12:35:47
| Re: The emulators crasher — LXA
If it's so wrong with Hans Plus4 I wonder if there is a minor fault with TED, maybe the CPU. Very strange. I am surprised with Gaia Plus4 also!
I am also wondering did we not do these tests a number of years ago?? I'm sure we did something like it tho.
|
|
Posted By
Gaia on 2012-09-05 15:59:07
| Re: The emulators crasher — LXA
Bump! So has anyone else tried the yet? I am also curious whether others have a similar machine as I do...
|
|
Posted By
crock on 2012-09-05 18:48:32
| Re: The emulators crasher — LXA
Hey Gaia, I just tried 10 CPU's, all in the same +4 MB. If found that:
2 x MOS HMOS CPU's (7501) exhibited a=00, x=00
4 x CSG HMOS-II CPU's (8501, datecode = 1490) gave a=EE, x=EE
Of the remaining 4 MOS HMOS-II CPU's (8501R1's datecode = xx84) 2 gave 00, 00 and the other 2 gave EE, EE !! Two of these are 8501R1's which were both packaged in Hong Kong one week apart which give different results.
Rob
|
|
Posted By
Litwr on 2012-09-06 07:46:23
| Re: The emulators crasher — LXA
It is still a mystery. May this code produce values not equal to 0 or EE at c16/+4? I plan to add ANE/LXA tests to the next release of the test suite.
|
|
Posted By
Gaia on 2012-09-06 16:29:53
| Re: The emulators crasher — LXA
Cheers, Rob! May I ask you to look what type of RAM chips you have in these machines? I recall we suspected once for the ANE instruction that the outcome was depending on the type of RAM used (manufacturer in particular).
|
|
Posted By
crock on 2012-09-06 18:15:33
| Re: The emulators crasher — LXA
They were all in the same board, I just swapped out the CPU. This particular one had Micron MT4264-15's, but I have Mitsubishi, OKI and Motorola equivalents in the store cupboard if you really want me to check. It's my 'hack' board, so everything is socketed.
What's the theory with the RAM manufacturer? Ability to source/sink more current on the outputs?
rob
|
|
Posted By
Gaia on 2012-09-08 13:32:53
| Re: The emulators crasher — LXA
Erm, sorry I'm afraid my memory failed me. The RAM type effected the powerup pattern, actually, but I can not find the forum thread right now.
|
|
Posted By
Krill on 2012-09-13 18:14:57
| Re: The emulators crasher — LXA
I'm afraid there is no correct emulator behaviour for the $AB opcode (which is in fact LAX #imm in some sources), as this opcode behaves different on different machines.
If there is some code that relies on a specific behaviour, then that's the one to use. If there are different pieces of code relying on different behaviour.... well, make it an option.
|
|
Posted By
Luca on 2012-09-14 04:11:33
| Re: The emulators crasher — LXA
Haven't followed this topic deeply, but here's my two cents: I use LAX #imm quite frequently and I see it works as I expected to be on YAPE. Probably, I used it in simple cases, whereas in most complex codes some discrepancies occur, dunno...
|
|
Posted By
Krill on 2012-09-14 07:14:08
| Re: The emulators crasher — LXA
I have always avoided LAX #imm like the plague because it's behaving differently on different machines and probably also on a single machine over time. In other words, it's simply not stable.
The other LAX addressing modes, however, are stable and very useful. Consider using LAX zp and try to squeeze out that extra cycles somewhere else.
|
|