On Wed, 14 Dec 2016, Tony Duell wrote: > What I need to do is find exactly how the flags are set by the > LD A,R
It's been long since I did anything with the Z80, but offhand all flags are set as with ALU operations according to the value loaded into the accumulator (same with LD A,I, but not the reverse loads IIRC). These are the only Z80 LD instructions that set the flags. If help is still needed with interpreting this piece of code I can reach out for documentation and refresh old memory. BTW, as a side effect of incomplete instruction decoding and the lack of trapping on unimplemented operations the Z80 had a number of undocumented operations available, which however were reliable across different silicon manufactured and eventually got figured out and documented. Some software relied on correct execution of these operations and may require an accurate emulator implementation to run correctly. XZX is one emulator I know of that has claimed support for all these operations in its core processor support (I and R registers should also be correctly handled); otherwise emulating Sinclair ZX Spectrum class systems and running as an X11 client on various *nix systems. I haven't used it for years now though and have no idea whether it has been maintained beyond 1997 which is when the version I still have around has been released. Maciej
