Kirjoittaja |
Viesti |
JPQ
| Perjantaina, 17. kesäkuuta, 2005 - klo 23.07: | | voisiko joku selittää meneekö tuo timer homma noin näin: pysäytän timerin, laitan arvoiksi nollat ja käynnistän timerin ja halutun ajan kuluttua pysäytän timerin ? haluttu aika olisi se kun nopeus testini on suoritettu tässä esimerkissä. Eli toimiiko tämä kuin perinteinen sekuntti kello urhelu kisoissa. ja palauttaako timer normaaleja numeroita vaiko BCD koodattuja jos jälkimäisiä mistä mahdollisimamn tarkka kello ? Nimerkki Ajattelin tehdä nopeus testin jolla voin jopa C64 suhteuttaa muihin laitteisiin.
|
Jani Kuituniemi
| Lauantaina, 18. kesäkuuta, 2005 - klo 0.42: | | Käytä CIA:n Jiffy kelloa ($00a0-$00a2). Sen arvo kasvaa joka 1/60s osa sekunti kunnes pysäytät. Toimii juuri noin kuin sanot. Eli tuo on binääri-laskuri, $00a2 pyörii 0-255 ja kasvattaa $00a1:sta joka pyörii 0-255 ja kasvattaa edelleen $00a0:aa. Tuosta voi sitten laskea kuluneet sekunnit jakamalla tuon luvun 60:llä ja jakojäännöksestä 1/60:s osa sekunnit.
|
allu
| Lauantaina, 18. kesäkuuta, 2005 - klo 1.47: | | Jiffy-kello on vaan kovin epätarkka. Eikä sen resoluutiokaan riitä kuin pitempiin mittauksiin. Esim. suurinta osaa pelirutiineista sillä ei voi kellottaa koska ne vie alle 1/50 sekuntia. Sitäpaitsi, ei oikeastaan voi sanoa että se on CIA:n kello vaikka se CIA:n timerilla onkin toteutettu. Lähinnä se on c64:sen "käyttiksen" palvelu. Jos välttämättä haluaa käyttää jiffy-kelloa sen arvo on myös TI-muuttujassa. JPQ: CIA:n timeri laskee alaspäin. Sinne asetetaan haluttu viive mikrosekunteina(max. 65535us) ja käynnistetään timeri. Kun laskuri pyörähtää nollan kautta ympäri asettuu keskeytysbitti. Sinun tapauksessasi olisi parempi laittaa toi max-arvo sinne, käynnistää timeri ja pysäyttää kun kellotettava rutiini on valmis(rutiini ei saa kestää kauempaa kuin 65ms). Sopivasti laskemalla saadaan rutiinin viemä aika mikrosekunnin tarkkuudella. Laskurien arvot ovat ihan normaalia binääriä ainoastaan TOD-kello käyttää BCD-esitystä(mikä onkin järkevää). CIA-piirin datasheettejä on muuten netti pullollaan. Omillakin sivuilla on yksi.
|
JPQ
| Sunnuntaina, 19. kesäkuuta, 2005 - klo 18.54: | | allu: tuo Jiffy riittää mulle eli en testaa rutiinien nopeutta vaan koneen. PS: riittää tälläiseen nopeus testiin mainiosti tähän menee aika piankin ehkä jopa minuutteja. ja Pegasos2sessakin saanen tarkkuudeksi vain sadasosa sekunnin joten... ja en koodaa basicilla joten TI muuttujaan en pääse käsiksi. Ja missäs sun omat sivut on ? ja tuo laskuri ei riitä mulle aika määrien suhteen johon se pystyy tarkkuushan toki olisi kivaa mutta kuitenkin verrokkikaan ei ääritarkka ole joten...
|
allu
| Sunnuntaina, 19. kesäkuuta, 2005 - klo 19.25: | | JPQ: hmm, et testaa rutiinien nopeutta vaan koneen?? Koneella tarkoitat c64:sta? Kuusnelonen on aina yhtä nopea(/hidas) eikä ole olemassa muutaman turbokortin lisäksi nopeampaa c64 rautaa. Jos yrität mitata emulaattorin nopeutta niin se ei onnistu millään kuusnelosessa laskevalla ohjelmalla. Syy siihen on että vaikka laittaisit emulaattorin pyöriin täysillä, niin emuloitava kuusnelonen ei sitä huomaa vaan antaa aina saman tuloksen. Tuloksia vaan tulee enemmän tarkasteluvälillä. Voit ajatella sen niin että vaikka c64:n prosessori nopeutuu emulaattorin nopeutta nostamalla niin myös c64:n "chipset" nopeutuu samassa suhteessa joten jiffy-kellokin käy nopeammin. Ne (mun) datasheetit on tuolla http://www.surffi.net/~allu/datasheets/
|
JPQ
| Sunnuntaina, 19. kesäkuuta, 2005 - klo 19.57: | | allu: no C64 on joo yhtä nopea mutta maailmassa kuten tiedät hieman muitakin koneita.
|
allu
| Sunnuntaina, 19. kesäkuuta, 2005 - klo 20.18: | | JPQ: Ahaa, eli mittaat emulaattorin nopeutta. Eikös sen mittaukseen käy ihan tavallinen 10000 looppi koska joka tapauksessa joudut kellottaan sen sekunttikellolla. Sen suoritusaika on suoraan riippuvainen emulaattorin isäntäkoneen suorituskyvystä. Kun taas TI-muuttuja antaa aina saman arvon. Oli emulaattori sitten säädetty 10% tai 1010% nopeudelle.
|
JPQ
| Sunnuntaina, 19. kesäkuuta, 2005 - klo 21.32: | | allu: väärin enkä vaan eri vertaan koneiden nopeuksia. Ja teen todella extreme nopeus vertailuja jossa sanoisit heti jos kuulisit ei ole järkeä. Tiedän kyllä että kaksi/kolme muuta testilaitetta ovat nopeampia mutta paljonko. Tiedän että tuloksia ei kestä herkimmät muutenkaan.
|
Britelite
| Maanantaina, 20. kesäkuuta, 2005 - klo 14.01: | | Sanoisin että normaali seinäkello riittää ihan hyvin ajanottoon jos jotain vähänkin monimutkaisempaa testiä olet nepalla suorittamassa
|
JPQ
| Maanantaina, 20. kesäkuuta, 2005 - klo 14.13: | | Britelite: eikä muuten riitä sen tarkkuus mulle ja se on riitettävä sulle. Eli testaan mahdollisimman tarkasti en halua että Commodore64 saa huonommat tulokset kuin ansaitsee.
|