I can send you my CPU implementation. I'm not sure what the external test is for but it fails at line 35.
My way of solving the CPU was some logic plus trial and error. It's about 30 lines. I'm worried that I've got a botched and incomplete solution. But I'm so pleased that I finally did it that I don't mind so much and will try to fix later. But any suggestions would be appreciated.
I used normal Registers rather than AReg and DReg for the external test as I read it's for when they don't work.