@saxus:Mivel, ha jol ertem, ezt amugy is ciklusban fogod hasznalni, igy mered azt, hogy X ido alatt hany ilyen sleep futott le. Ha tudod, hogy 1 mp alatt 1M usleepnek kellett volna lefutnia, de csak 999800 futott, akkor tudod, hogy korrigalni kell. Nem, nem ciklusban fogom használni. Az a lényeg, hogy az 1541-esben a 6502-es kereken 1 MHz-en fut. Ennek megfelelően, amikor egy utasítást, vagy megszakítást emulálok, akkor ott várnom kell 2-7 µszekundumot. Nem egy db forciklust fogok számolni, hanem a két utasítás végrehajtása közti timepaddingot szimulálom. Ennek megfelelően azt hiába tudom mérni, hogy az elmúlt egy másodpercben mennyit vártam, azt nem tudom, hogy mennyit kellett volna, hiszen az a futtatandó programtól függ, ami teljesen változó várakozási időket fog produkálni, sőt akár fel is függesztheti a processzor futását, mondjuk egy JAM paranccsal, amiből csak a RESET megszakítás hozza ki. Ennek megfelelően futásidejű korrekcióra már nincs lehetőség.
Az amit te mondasz, azt az inicializáláskor lehet megcsinálni, hogy megmérem, hogy a rendszeróra és a sleep 1 másodperce között mennyi a különbség és azzal agyusztálom a ciklusszámot; de azt csak inicializáláskor lehet. Azonkívül ha megnézed a forráskódot, akkor látod, hogy ez már benne van. |