C64Power Forum
Software => Programowanie => Wątek zaczęty przez: hobocti77x w 21 Sierpnia 2018, 13:05
-
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 :o
-
podejżewam że największe problemy byłyby z loaderami.
-
Sprawdzone, emulacja dziala. Teraz chce dodac kilka trybow ktore bedzie mozna dodac doatkowym rozkazem wykozystujacym kod $02
mam dysonans naukowo-poznawczy , jeżeli emulacja działa zgodnie z testami to jakie to były testy więc.
Hint, nie przejdzie przez testy na polu.
-
podejżewam że największe problemy byłyby z loaderami.
Z loaderami to najwiekszy problem bylby z powodu roznic w szybkosci wykonywania kodu,tu problemy bylby nawet po podkreceniu procesora ale od tego jest dokladna emulacja.
Ciekawe ze ARM taki patent zastosowal w swojej emulacji.
-
możesz wszystkie dema napisać odnowa.
-
A liczb ze znakiem to nikt nie uzywa na 6502?
-
A liczb ze znakiem to nikt nie uzywa na 6502?
Raczej nie przy porownywaniu skoro 6502 pokaze ze 2 >1 ( co jest prawda) , ale tez wykaze ze -1 > 1 ::)
Dzieki uzyciu znacznika V mozna ten blad poprawic ..
-
Zmiana zachowania znacznikow w wersjach rozwojowych procesorow nie jest czyms wyjatkowym tak bylo i w przypadku 6502 i 65c02 gdzie przy dodawniu zachowuja sie czasami inaczej. W apple ii po pewnym czasie 6502 zamieniono na 65c02 i nie oznaczoalo to ze nagle jakas znaczna ilosc programow przestawala dzialac, to samo bylo w przypadku i8080 i Z80 i wskaznika P ktory w Z80 zachowywal sie inaczej...