Login
Back to forumReply to this topicGo to last reply

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! happy

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. wink
[MIK] Wow! happy
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. wink

Posted By

Gaia
on 2012-07-31
15:36:04
 Re: The emulators crasher — LXA

Well, well... happy



It's not a Yape screen, honest! happy

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. happy

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. happy
[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. wink

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. happy

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. happy

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.



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024