fruit-bat / pico-zxspectrum

ZX Spectrum for Raspberry Pico Pi RP2040
487 stars 54 forks source link

Z80 fails test suite #51

Open fruit-bat opened 2 years ago

fruit-bat commented 2 years ago

Some minor XY flag issues but also a freeze on SRO (XY), R

I think this is a DD, CB instruction.

See https://github.com/raxoft/z80test

fruit-bat commented 2 years ago

Test suite is hard to build as it needs sjasm. Only found source for sjasmplus which will not assemble the tests.

Pre-built tests from a previous version here... docs/z80test-1.0.zip

fruit-bat commented 2 years ago

This is the failing test:

.sro_xyd_r  flags   s,1,z,1,f5,0,hc,1,f3,0,pv,1,n,1,c,1
            vec     0xdd,0xcb,0x00,0x00,mem,0x1200,a,0xa0,f,0xff,bc,0xbbcc,de,0xddee,hl,0x4411,ix,mem   ,iy,mem   ,sp,0xc000
            vec     0x20,0x00,0x00,0x3f,mem,0x0000,a,0x00,f,0x01,bc,0x0000,de,0x0000,hl,0x0000,ix,0x0000,iy,0x0000,sp,0x0000
            vec     0x00,0x00,0x01,0x00,mem,0x00ff,a,0x00,f,0xfe,bc,0x0000,de,0x0000,hl,0x0000,ix,0x0001,iy,0x0001,sp,0x0000
            crcs    allflags,0xd88fde47,all,0x2e23102b,docflags,0x0af8b1a8,doc,0x31dc0d48,ccf,0xa7ae2064,mptr,0xe9fc598c
            name    "SRO (XY),R"

...and just in case it was the previous test that messed things up, it was....

.sro_xyd    flags   s,1,z,1,f5,0,hc,1,f3,0,pv,1,n,1,c,1
            vec     0xdd,0xcb,0x00,0x06,mem,0x1200,a,0xa0,f,0xff,bc,0xbbcc,de,0xddee,hl,0x4411,ix,mem   ,iy,mem   ,sp,0xc000
            vec     0x20,0x00,0x00,0x38,mem,0x0000,a,0x00,f,0x01,bc,0x0000,de,0x0000,hl,0x0000,ix,0x0000,iy,0x0000,sp,0x0000
            vec     0x00,0x00,0x01,0x00,mem,0x00ff,a,0x00,f,0xfe,bc,0x0000,de,0x0000,hl,0x0000,ix,0x0001,iy,0x0001,sp,0x0000
            crcs    allflags,0xc76b6fb8,all,0x1cf5bf25,docflags,0x6ed22cb1,doc,0x4ce1c915,ccf,0x634cfd9b,mptr,0xda289a0a
            name    "SRO (XY)"
fruit-bat commented 2 years ago

Fixed Z80 after DDCB FDCB undocumented instructions. See https://github.com/fruit-bat/pico-zxspectrum/commit/035b5a29d2c4b06f2ef4f5eda594a00c9c3d8f05

fruit-bat commented 2 years ago

Flag fails on:

IN R, (C)
IN(C)
OUTI
OUTD
OTIR
OTDR
fruit-bat commented 2 years ago

Fixed Z80 OUTI, OUTD, OTIR, OTDR. See https://github.com/fruit-bat/pico-zxspectrum/commit/9d7b1d2527651ad9bc547fc85d17fd60ccc5e639

fruit-bat commented 2 years ago

So that leaves:

CCF+SCF
SCF+CCF

...failing on XY flags, which is possibly errors in the test.

IN R, (C)
IN (C)

...failing on flags. This may be due to the data being fed from my emulation, not sure.

.in_r_c    flags   s,1,z,1,f5,0,hc,1,f3,0,pv,1,n,1,c,1
            vec     0xed,0x40,stop,0x00,mem,0x1234,a,0xaa,f,0xff,bc,0xbbfe,de,0xddee,hl,0x4411,ix,0xdd88,iy,0xfd77,sp,0xc000
            vec     0x00,0x38,0x00,0x00,mem,0x0000,a,0x00,f,0x00,bc,0x0000,de,0x0000,hl,0x0000,ix,0x0000,iy,0x0000,sp,0x0000
            vec     0x00,0x00,0x00,0x00,mem,0x0000,a,0x00,f,0xff,bc,0x0000,de,0x0000,hl,0x0000,ix,0x0000,iy,0x0000,sp,0x0000
            crcs    allflags,0x61f21a52,all,0xea2912bf,docflags,0xb6433321,doc,0x9c9c07ec,ccf,0x4801a633,mptr,0x587e9d23
            name    "IN R,(C)"

.in_c       flags   s,1,z,1,f5,0,hc,1,f3,0,pv,1,n,1,c,1
            vec     0xed,0x70,stop,0x00,mem,0x1234,a,0xaa,f,0xff,bc,0xbbfe,de,0xddee,hl,0x4411,ix,0xdd88,iy,0xfd77,sp,0xc000
            vec     0x00,0x00,0x00,0x00,mem,0x0000,a,0x00,f,0x00,bc,0x0000,de,0x0000,hl,0x0000,ix,0x0000,iy,0x0000,sp,0x0000
            vec     0x00,0x00,0x00,0x00,mem,0x0000,a,0x00,f,0xff,bc,0x0000,de,0x0000,hl,0x0000,ix,0x0000,iy,0x0000,sp,0x0000
            crcs    allflags,0x8f4b242f,all,0x68392c0e,docflags,0x41dd7fcb,doc,0xb285546f,ccf,0x1efcf040,mptr,0x253c1992
            name    "IN (C)"

....

fruit-bat commented 2 years ago

Fixed IN R, (C), IN (C). See https://github.com/fruit-bat/pico-zxspectrum/commit/11749a17140acebe3e562ee9547110bedc9b3cda

fruit-bat commented 2 years ago
CCF+SCF
SCF+CCF

Failing on XY flags, which is possibly errors in the tests. Anyone have a more recent build of the tests from https://github.com/raxoft/z80test ?