[abc80] Kod synkad med rasterstrålen?

Andreas Gustafsson andreas.gustafsson at gmail.com
Tis Dec 20 04:41:21 PST 2016


Jag har testat lite att dynamiskt skriva om skärmminnet kontinuerligt, och
det ser ut som om ändringar får genomslag direkt, dvs. i teorin om man har
ett A på skärmen men sedan skriver om i skärmminnet så det är ett B när
rasterstrålen är halvvägs igenom uppritningen av det tecknet så får man
undre halvan från ett B.

För att kunna verifiera detta korrekt måste jag dock ha kod som är i exakt
sync med rasterstrålen.
'halt' borde ju göra så att man är i ett känt state där rasterstrålen är i
VBL-området (eller?)

Det enda jag hittat är att ABC80-klockan ska vara 3MHz. Är det exakt, eller
finns det någon som har en exaktare siffra?

Om vi antar antar att skärmuppdateringsfrekvensen är 50Hz och vi har 312
linjer (standard PAL) så ger 3MHz då får vi dessvärre inte ett jämnt antal
klockcykler per rasterrad, utan 192.30769...

Det borde dock fortfarande gå att hålla hyfsad synk med rasterstrålen om
man kompenserar för detta.

Finns det något som "stjäl" cykler från CPUn som man måste ta hänsyn till?

Det jag helst skulle vilja göra är att köra 'halt', anta att jag är på
rasterlinje 0 då, och sedan köra kod där jag räknat klockcykler tills jag
är exakt där skärmutritning börjar, för att sedan dynamiskt kunna
manipulare skärmminnet efterhand som det ritas ut.
Skulle då även behöva veta hur många linjer ner som första raden av tecken
är.

All info som någon har är av intresse, annars antar jag att det är
experimenterande som gälller... :)

/Andreas


More information about the ABC80 mailing list