Jak juz kiedys wspominalem, tworze procesor dla mojego systemu. O ile w w kwesti emulacji wiadomo trzeba zachowac pelne podobienstwo do oryginalu. Ale chce miec tez kilka trybow dodatkowych gdzie priorytetem jest predkosc, ale tez i rozszerzenie mozliwosci procesora.
No i natrafilem na pewien problem. Praktycznie wszedzie mozna przeczytac ze rozkaz CMP to to samo co odejmowanie SBC tylko bez zachowania wyniku, jedynie sa ustawine flagi procesora. No i w sumie tak jest z wyjatkiem V ktora jest ustawiana zgodnie z wynikim przy SBC , ale nie zmienia stanu przy porownaniu CMP. W sumie maly problem tyle ze procesor ARM ustawia ja przy porownaniu zgodnie z wynikiem operacji. Ulatwia to porownywac liczby ze znakiem. no i przy emulacji trzeba te flage zachowac co wymaga kilku dodatkowych cykli procesora.
Wczoraj sprawdzilem jak zrobil to ARM w swojej emulacji 6502 dla komputerow BBC i tam flaga jest aktualizowana i zrezygnowali z korekcji.
Ciekaw jestem w ilu programach na c64 stanowiloby to probelm