I was reading the PC-CPC thread in CPC-Rulez (http://cpcrulez.fr/forum/viewtopic.php?p=26098#p26098), and the last beta pass the ZEXALL tests. Great Work Demoniak! :)
And in the CPC-Power page (http://www.cpc-power.com/index.php?page=detail&num=6346) appears than a few months ago all the tests were passed by a real CPC, all the zxism from previous version have been eliminated, now is an exclusive z80 test.
CPC++ and Sugarbox pass those tests too. And i will tell to Bruno for adding PC-CPC to that list and if i remember well, CPCBox passed those tests too.
Has other emu authors tested his z80 emulation against them?
PS: CPMBox pass those tests too ;)
JavaCPC passes all tests except this one:
ldd<r> (1).................... OK
ldd<r> (2).................... ERROR **** crc expected:39dd3de1 found:21a2bb41
ldi<r> (1).................... OK
ldi<r> (2).................... OK
my wip of arnold uses "inkz80" emulation core written by a friend.
This z80 emulation passes zexall and all the other tests including the recent findings for scf/ccf.
But of course my wip is not released yet - it's been many years in development! :laugh:
Yippieehhhhh....
CP/M 2.2 - Amstrad Consumer Electronics plc
A>zexall
Z80 instruction exerciser
ldd<r> (1).................... OK
ldd<r> (2).................... OK
ldi<r> (1).................... OK
ldi<r> (2).................... OK
neg........................... OK
<rrd,rld>..................... OK
<rlca,rrca,rla,rra>........... OK
shf/rot (<ix,iy>+1)........... OK
shf/rot <b,c,d,e,h,l,(hl),a>.. OK
<set,res> n,<bcdehl(hl)a>..... OK
<set,res> n,(<ix,iy>+1)....... OK
ld (<ix,iy>+1),<b,c,d,e>...... OK
ld (<ix,iy>+1),<h,l>.......... OK
ld (<ix,iy>+1),a.............. OK
ld (<bc,de>),a................ OK
Tests complete
A>█
Thanks SyX for sending me the quick SNA for testing these instructions quickly :)
This may be a naive question, but does this test have any practical significance?
SyX, the master! 8)
As I know, if this test is not OK, you are not emulating properly the CPU.
(means, you emulator should have bugs related to that)
Yeah, that's my understanding too, however sometimes CPU features are so obscure and never to be encountered, so that you can get away with these bugs and never meet them...
Or not. ;D
Yeah, well, that's what I'm asking :D
JavaCPC passes them all, too, now...
Result:
CP/M 2.2 - Amstrad Consumer Electronics plc
A>zexall
Z80 instruction exerciser
<adc,sbc> hl,<bc,de,hl,sp>.... OK
add hl,<bc,de,hl,sp>.......... OK
add ix,<bc,de,ix,sp>.......... OK
add iy,<bc,de,iy,sp>.......... OK
aluop a,nn.................... OK
aluop a,<b,c,d,e,h,l,(hl),a>.. OK
aluop a,<ixh,ixl,iyh,iyl>..... OK
aluop a,(<ix,iy>+1)........... OK
bit n,(<ix,iy>+1)............. OK
bit n,<b,c,d,e,h,l,(hl),a>.... OK
cpd<r>........................ OK
cpi<r>........................ OK
<daa,cpl,scf,ccf>............. OK
<inc,dec> a................... OK
<inc,dec> b................... OK
<inc,dec> bc.................. OK
<inc,dec> c................... OK
<inc,dec> d................... OK
<inc,dec> de.................. OK
<inc,dec> e................... OK
<inc,dec> h................... OK
<inc,dec> hl.................. OK
<inc,dec> ix.................. OK
<inc,dec> iy.................. OK
<inc,dec> l................... OK
<inc,dec> (hl)................ OK
<inc,dec> sp.................. OK
<inc,dec> (<ix,iy>+1)......... OK
<inc,dec> ixh................. OK
<inc,dec> ixl................. OK
<inc,dec> iyh................. OK
<inc,dec> iyl................. OK
ld <bc,de>,(nnnn)............. OK
ld hl,(nnnn).................. OK
ld sp,(nnnn).................. OK
ld <ix,iy>,(nnnn)............. OK
ld (nnnn),<bc,de>............. OK
ld (nnnn),hl.................. OK
ld (nnnn),sp.................. OK
ld (nnnn),<ix,iy>............. OK
ld <bc,de,hl,sp>,nnnn......... OK
ld <ix,iy>,nnnn............... OK
ld a,<(bc),(de)>.............. OK
ld <b,c,d,e,h,l,(hl),a>,nn.... OK
ld (<ix,iy>+1),nn............. OK
ld <b,c,d,e>,(<ix,iy>+1)...... OK
ld <h,l>,(<ix,iy>+1).......... OK
ld a,(<ix,iy>+1).............. OK
ld <ixh,ixl,iyh,iyl>,nn....... OK
ld <bcdehla>,<bcdehla>........ OK
ld <bcdexya>,<bcdexya>........ OK
ld a,(nnnn) / ld (nnnn),a..... OK
ldd<r> (1).................... OK
ldd<r> (2).................... OK
ldi<r> (1).................... OK
ldi<r> (2).................... OK
neg........................... OK
<rrd,rld>..................... OK
<rlca,rrca,rla,rra>........... OK
shf/rot (<ix,iy>+1)........... OK
shf/rot <b,c,d,e,h,l,(hl),a>.. OK
<set,res> n,<bcdehl(hl)a>..... OK
<set,res> n,(<ix,iy>+1)....... OK
ld (<ix,iy>+1),<b,c,d,e>...... OK
ld (<ix,iy>+1),<h,l>.......... OK
ld (<ix,iy>+1),a.............. OK
ld (<bc,de>),a................ OK
Tests complete
A>█
[attachimg=1]
Oh... and of course this is for you, SyX:
FANTASTIC WORK MARKUS!!! :D :D :D
@Arnoldemu: Release the new version of arnold!!! 40Crisis uses it for his great projects ;)
@Gryzor (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1): Yes, i have this special skill to generate code that make visible these bugs a lot, the funnier one was one that changed the left eye in the pacman ghost by O in CPCs and emulators that pass those tests, while in the ones failing the ghosts looked perfectly, i will always remember those "superfun" debugging afternoons :)
Quote from: Gryzor on 09:49, 02 July 14
Yeah, that's my understanding too, however sometimes CPU features are so obscure and never to be encountered, so that you can get away with these bugs and never meet them...
Are you referring to "The Eternal Light" test? :-X
Quote from: AMSDOS on 12:27, 02 July 14
Are you referring to "The Eternal Light" test? :-X
None in particular, just saying...
Great job ! Congrats ;)
I'm pretty sure this isn't the latest version of the ZEXALL tests since it doesn't appear to be testing the SCF/CCF flag effects, which are definitely NOT emulated by my latest JEMU core, which also passes all the tests.
Where can we find the latest version ?
Because CPC-Power captcha, I'll attach the dsk image here:
CPCE 1.94 doesn't handle ZEXALL too well...
(http://cngsoft.no-ip.org/CPCE_ZEXALL-20140707-Z80FLAG0.PNG)
However, something curious happens in an alt. version I tried to build back in the day, when the internal workings of Z80's MEMPTR register were discovered and explained:
(http://cngsoft.no-ip.org/CPCE_ZEXALL-20140707-Z80FLAG1.PNG)
It gets several instructions right where the official binary doesn't, but the four "aluop" still fail, albeit with different values.
Not that it matters too much; CPCE ran into a dead end years ago, when I ran out of space in the 16-bit binary. All attempts to add new stuff have been either limited to the 32-bit binaries (DOS and Win32) or had to be commented out because they led to excessively different behaviors. Yet another reason to scrap CPCE and rewrite it from scratch :-(
Concentrate on PS4CPC ;)
Your work on BB4CPC was and still is fantastic!
PS4CPC, yes please, I would very much like to see a CPC emulating a playstation. :laugh: