[abc80] Kod synkad med rasterstrålen?

Erik Isaksson exon at lysator.liu.se
Tis Dec 20 12:56:20 PST 2016


Enligt min dokumentation:

Pixel clock of 12 MHz (i.e. 11,980,800 Hz)
50 frames/s
312 lines/frame (15.6 kHz)
768 cycles/line
Htotal = 64 t, Hdisp = 40 t, Hsync Length = 5 t, Front Porch = 7 t, Back 
Porch = 12 t
Vtotal = 312 l, Vdisp = 240 l, Vsync Length = 16 l, Front Porch = 24 l, 
Back Porch = 32 l
CPU clock of 12/4=3 MHz (i.e. 2,995,200 Hz)
192 CPU cycles/line

mvh Erik



On 2016-12-20 13:41, Andreas Gustafsson wrote:
> 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
> _______________________________________________
> ABC80 mailing list
> ABC80 at abc80.org
> http://www.abc80.org/mailman/listinfo/abc80




More information about the ABC80 mailing list