Ich habe dass auch wissen wollen, und habe damals diese seiten dazu gefunden:
http://dustlayer.com/c64-archi…-complicated-relationship
http://myoldcomputer.nl/techni…sheets/processors/6510-2/
http://codebase64.org/lib/exe/…fely_freezing_the_c64.pdf
Wie ich dass begreife ist PHI2 ein takt-signal (clock).
Dass alles hat sein anfang mit ein krystal. Dass kristall liefert 2 verschiedene clock signale gleichzeitig (wahrscheinlich mit hilfe andere componenten)
- die erste auf 3.58Mhz fur NTSC oder 4.43MHz fur PAL, und wird am COLOR pin (17 bei 6567/6569) ubergeben and der VIC-II
- die zweite ist der 8.18Mhz fur NTSC oder 7.88Mhz fur PAL und der wird geleifert am VIC-II pin 22 (IN).
Der VIC-II teilt der clock-signal auf pin 22 in 8 gleichen teile (zeitweise wird dass also 1 Mhz ungefahr), und schickt diese uber pin 17 (PHI0) zum 6510 processor auf pin 1 (PHI0 IN), under der processor schickt diesem clock-signal auf pin 38 (PHI2 OUT) zu alle anderen peripherals die damit synchonisieren.
Der VIC-II und Processor teilen sich die zeit von 1 clock-signal, wen dass signal hoch ist (also 1 oder 5V) macht der processor seine arbeit (lesen+schreiben auf dem adres- und datenbusse), und wenn sie niedrig ist (also 0 oder 0V) dann steht die zugang frei fur den VIC-II chip um seine arbeit zu machen.
Es kann aber sein dass der VIC chip mehr zeit braucht um seine arbeit zu machen, dan macht er pin 12 (BA der normalerweise hocht ist / 5V) niedrig (also auf 0V) und dass wird durch dem processor am pin 2 (RDY) gesehen. Dies hat zu folge dass der processor seine schreib aktionen ausfuhrt und dann stoppt mit seiner arbeit. Dass stoppen kann bis zu 3 cyclen dauern, wonach auch pin 16 auf dem VIC (AEC) auf 0 gesetzt worden kann damit pin 5 auf dem processor (auch AEC genannt) dafur sorgt dass der prozessor sich abschirmt von der datenbus, und dan ist der weg frei um controlle zum busse zu ubernehmen durch andere chips (dma/externer processor).
So lange der AEC und BA niedrig sind, ist der 6510 prozessor angehaltet vom VIC.
Leitung AEC (und damit dass anhalten des internen prozessors) ist aber nicht zu sehen am cartridge port, also der Ultimate weiss nicht genau ob und wann der processor angehaltet ist. Und ums schieriger zu machen, wenn der screen-blanking activ ist, findet keine DMA statt, und der Ultimate signaliert durch dass setzen von DMA dass er arbeit hat und der VIC den prozessor stoppen muss, aber dass darf nicht wenn der CPU im schreib modus ist/geht, und nur wenn der PHI2 hoch ist (also im prozessor aktiv) darf DMA activiert werden. Es muss also sicher gestellt werden dass der CPU im lesemodus ist/geht. Wenn der CPU uber DMA im schreibmodus angehaltet wird, gehen daten ins blaue hinein. Er kann aber der clock, BA, und datenbus sehen am cartridge-port, also wird auf grund maximal 3 cyclen nach dem der BA leitung auf 0 gesetzt ist geschatzt wann es scheinbar ok ist um seine arbeit zu machen. Fur der C64 breadbin ist dass 250ns bevor der falling edge (PHI2 ist hoch und geht auf 0), aber fur C64C ist dass anders weil der ein 850x prozessor hat und der sich anders benimmt. Der REU macht sein DMA 80ns nach der falling edge. Die PHI2 wert ist eine calculierte/gemessene schatzung ! Wenn aber die schatzung falsch ist, kan es spater zum absturzt kommen. All diese dinge zusammen machen dass freezen durch DMA compliciert, und unfreezen bringt dann manchmal ein absturz. Dass (un)freezen ist abhangig von viele sachen.
Falling edge - Ein leitung geht von 5V hoch auf 0V niedrig, dass dauert etwas zeit. Rising edge ist dass umgekehrte (von 0V niedrig auf 5V hoch).
Edge recovery - Etwas hat nicht ganz geklappt und ein neuer versuch wird gemacht nachdem alles wie zovor gesetzt ist.
CPU Addr valid after PHI2 - Die adresbus und datenbus laufen nicht ganz synchron, wenn daten geschrieben werden auf den datenbus und der adresbus hat noch nicht den richtigen wert erhalten werden daten an der falsche adresse ubergeben, wass wieder zum absturtz fuhren konnte.
Dass ist wass ich denke zu wissen, aber ich kan mich auch irgendwo irren, und ich hoffe es ist klar genug. Steht ja jeder frei mich zu korrigieren, gerne