Hello! Jim Brain wrote: > The system goes along fine until the CMP $03fa at $f99e. The 6509 reads > $f0, while the 6502 reads $f8. This is not a problem. The CPU is reading from uninitalized RAM here, so a random value is being read and that's OK. AFAIR, this is a memory location containing the "warm start" flag; after initialization, a magic value is written there. > After a bit, the paths greatly diverge. > I think I am out of my element, and need help to move beyond this. The real problem is at $F9B9: LDA $97. The code earlier expects the value $00 that it has written there, and 6509 indeed reads this value back, whereas 6502 reads $97. Therefore the following BMI instruction branches back. You need to figure out why LDA $97 reads back $97 instead of the actual value there. A possible reason is that he code has written this value at $F9B0: STA $97 - you can see that 6509 writes proper value $00 there, but 6502 writes $97. My first theory is therefore that you are not handling memory writes correctly - instead of the correct value, you write the lowest byte of the address for some reason. Regards, Michau. Message was sent through the cbm-hackers mailing listReceived on 2018-02-25 22:02:04
Archive generated by hypermail 2.2.0.