From: Stuart B. <sd...@nt...> - 2007-05-22 22:32:11
|
Hi, I've written a test program for SCF and CCF. Woody has run it on a real 48K and a real +2A, and the results are quite surprising. The test program can be downloaded from: * http://homepage.ntlworld.com/wholehog/stuart/scfccf-dump.tap The source is available from: * http://homepage.ntlworld.com/wholehog/stuart/scfccf-dump.asm In February 2004, Fuse's implementation of SCF was changed so that it copied bits 3 and 5 from A into F, instead of ORing bits 3 and 5 with A with the original values of bits 3 and 5 of F. The original discussion for this is here: * http://sourceforge.net/mailarchive/forum.php?thread_name=20040217082529.GH17981%40philos.lan.philosys.de&forum_name=fuse-emulator-devel The test results from the +2A that Woody tested seem to match Fuse's previous behaviour. I believe that the Z80 in this +2A is a Zilog Z80. These results are available at: * http://homepage.ntlworld.com/wholehog/stuart/woody+2a.txt On the 48K, bit 3 seemed to be unaffected by the either operation, but bit 5 appears to be obtained by ANDing the original value of bit 5 with something else, but I'm not sure what. Here are the results: * http://homepage.ntlworld.com/wholehog/stuart/woody48k.txt As Fuse's current behaviour was verified by Ian Greenway on a real Spectrum, there must then be at least *three* different behaviours for SCF on real hardware! -- Stuart Brady |