[abc80] Periodiskt återkommande osynk...?

Andreas Gustafsson andreas.gustafsson at gmail.com
Sat Dec 24 16:26:57 PST 2016


Efter att ha studerat koden lite ser det ut som om den kör en nedräkning av
ett 24-bitars värde, där den sköter de lägsta 8 bitarna i den normala
varianten, och så var 256:e frame så justerar den de övriga 16.
Har jag räknat rätt så tar denna sekvens 21 klockcykler extra, så det borde
bara vara att justera min timingkod till att vänta 21 cykler mindre i
fallet där de lägsta 8 bitarna av 24-bitars räknaren står på 0, vilket
betyder att den tagit den långa sekvensen. Dock så lyckas jag än så länge
inte bli av med synk-flimret, kan vara jag som räknat fel antingen i
ROM-koden eller i min justeringskod, eller så har jag missförstått något.

För visst borde det funka så här (jag är lite dålig på hur Z80/NMI/Halt
etc.) :

1. Jag kör HALT
2. VBL-interrupt inträffar
3. ROM-NMI kod körs
4. Jag får tillbaka kontroll i mitt program och koden efter
HALT-instruktionen körs.

Då borde ju det enda som händer vara attvar 256:e frame har 21 extra cykler
ätits upp i steg 3, vilket jag lätt kan justera för.

/Andreas



2016-12-24 21:56 GMT+01:00 juhasz <juhasz at abc.se>:

> Liten paus (interrupt!) i julfirandet....
>
> ...för att kolla in disassemblyn som finns här på sidan 61!
> http://www.abc80.org/docs/Programvaran%20i%20ABC80.pdf
>
> nmi-interrupt gör jr till adress 0:71 och där är det en del matematik för
> klockan som säkert tar lite olika tid vid overflow etc. Om man är riktigt
> noggrann borde man kunna räkna ut hur lång tid nästa nmi kommer ta genom
> att läsa av klockvariablerna och se vilken väg i koden nmi-rutinen kommer
> ta o därmed undvika osynk........
>
> ...nu tillbaka till glöggen! God jul! ;)
>
> RETI
>
> Robert
>
>
>
> Skickat från min Samsung Galaxy-smartphone.
>
> -------- Originalmeddelande --------
> Från: Göran Åhling <goran at eadc.se>
> Datum: 2016-12-24 21:32 (GMT+01:00)
> Till: Andreas Gustafsson <andreas.gustafsson at gmail.com>
> Kopia: abc80 <abc80 at abc80.org>
> Rubrik: Re: [abc80] Periodiskt återkommande osynk...?
>
> "Klockan"?
> INC på en byte, men vid Overflow efter 256 måste även nästa...
> Jag har ett vagt minne av NMI, men jag kan mycket väl ha fel.
>
> Min disassemblering är ännu inte åtkomlig.
>
> Och, GOD JUL, alla på listan!
> /Göran
> Skickat från min iPhone
>
> > 24 dec. 2016 kl. 00:51 skrev Andreas Gustafsson <
> andreas.gustafsson at gmail.com>:
> >
> > Hej igen!
> >
> > Jag har nu kommit en bit med mitt experimenterande med grafikuppdatering
> > synkroniserad med rasterstrålen.
> > Dock märker jag att det ibland "hoppar till" och verkar tappa mitt fina
> > cykel-exakta synk.
> > Det ser ut som det är återkommande, händer kanske var 4:e sekund eller
> så,
> > och verkar bara vara precis någon enstaka frame, sedan är allt i synk
> igen.
> > Känns som det är någon sorts interrupt eller något som går in och stör,
> och
> > det måste vara ett NMI för jag börjar mitt program med DI för att disabla
> > alla andra interrupts.
> > Kan det vara någon sorts NMI som ligger och kör på varje VBL, men koden
> som
> > den exekverar råkar ta lite extra tid periodiskt efter några hundra
> frames?
> > _______________________________________________
> > ABC80 mailing list
> > ABC80 at abc80.org
> > http://www.abc80.org/mailman/listinfo/abc80
>
>
> _______________________________________________
> ABC80 mailing list
> ABC80 at abc80.org
> http://www.abc80.org/mailman/listinfo/abc80
>


More information about the ABC80 mailing list