Разобрался я со всеми макросами и тестами, выловил у себя много разных ошибок, и вот что у меня получилось:
Z80doc 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>.. ~ b2m
aluop a,<ixh,ixl,iyh,iyl>.....Ok
aluop a,(<ix,iy>+1)........... CRC:c87524ce expected:e849676e b2m
bit n,(<ix,iy>+1)............. CRC:b1dc75f8 expected:a8ee0867 b2m
bit n,<b,c,d,e,h,l,(hl),a>.... CRC:5b934102 expected:7b55e6c8 b2m
cpd<r>........................ CRC:d506037a expected:a87e6cfa b2m
cpi<r>........................ CRC:9222ce2d expected:06deb356 b2m
<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)................ CRC:43bedef4 expected:b83adcef b2m
<inc,dec> sp..................OK
<inc,dec> (<ix,iy>+1)......... CRC:5bf85613 expected:20581470 b2m
<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)>.............. CRC:769f0568 expected:b0818935 b2m
ld <b,c,d,e,h,l,(hl),a>,nn....OK
ld (<ix,iy>+1),nn............. CRC:a81fd04b expected:26db477e b2m
ld <b,c,d,e>,(<ix,iy>+1)...... CRC:af19ff16 expected:cc1106a8 b2m
ld <h,l>,(<ix,iy>+1).......... CRC:88ca61bf expected:fa2a4d03 b2m
ld a,(<ix,iy>+1).............. CRC:7efe0dc8 expected:a5e9ac64 b2m
ld <ixh,ixl,iyh,iyl>,nn.......OK
ld <bcdehla>,<bcdehla>........ CRC:e8dec456 expected:744b0118 b2m
ld <bcdexya>,<bcdexya>........ CRC:5ae0d779 expected:478ba36b b2m
ld a,(nnnn) / ld (nnnn),a.....OK
ldd<r> (1).................... CRC:c41f2655 expected:94f42769 b2m
ldd<r> (2).................... CRC:0a7b7fe8 expected:5a907ed4 b2m
ldi<r> (1).................... CRC:e71bfac4 expected:9abdf6b5 b2m
ldi<r> (2).................... CRC:96ff856a expected:eb59891b b2m
neg...........................OK
<rrd,rld>..................... CRC:038558ff expected:955ba326 b2m
<rlca,rrca,rla,rra>...........OK
shf/rot (<ix,iy>+1)........... CRC:3ef819f0 expected:713acd81 b2m
shf/rot <b,c,d,e,h,l,(hl),a>.. CRC:7fa8157d expected:eb604d58 b2m
<set,res> n,<bcdehl(hl)a>..... CRC:026bb032 expected:8b57f008 b2m
<set,res> n,(<ix,iy>+1)....... CRC:1ed58319 expected:cc63f98a b2m
ld (<ix,iy>+1),<b,c,d,e>...... CRC:1e5ccb3a expected:04626abf b2m
ld (<ix,iy>+1),<h,l>.......... CRC:18faa48d expected:6a1a8831 b2m
ld (<ix,iy>+1),a.............. CRC:18a40eb4 expected:ccbe5a96 b2m
ld (<bc,de>),a................ CRC:c41805c9 expected:7a4c114f b2m
Tests complete
я использовал для прогона своей x80.dll файл zexdoc, который тестирует только официально заявленные функции в z80. Часть тестов выполняется 100% правильно, а часть дает ошибку crc, но в эмуляторе b2m эти тесты дают то же значение crc ( b2m ok)! Как так получается я понять не могу, но это дает надежду, что с dll все в порядке. Время выполнения отдельных тестов в протеусе весьма велико (2.5 часа симуляции работы схемы - 20 часов реальной работы...),
поэтому тест aluop a,<b,c,d,e,h,l,(hl),a> (753,664 cycles) я не прогонял полностью, а только часть итераций, сравнивая промежуточные операции с b2m.
За основу тестовой схемы взят проект из
viewtopic.php?f=81&t=10110&start=255#p121096 отличие только в размере ПЗУ и ОЗУ.
Для запуска этого теста в эмуляторе b2m я сделал свой конфиг(zx97.cfg) на базе конфига Galaxy, с распределением адресного пространства как в тестовой схеме.
Во вложении x80.dll, тестовая схема и этот тест.
PS все же интересно, почему crc отличается от настоящего z80 и в dll и b2m?...